Reputation: 1553
How do I ask PHPUnit to assert that a long string contains one of two possible options? Either result should assert true. Something like this?
$multi_kilobyte_string = "lorem ipsum...";
$option1 = "dolor";
$option2 = "amet";
$this->assertContains([$option1, $option2], $multi_kilobyte_string);
Upvotes: 2
Views: 1235
Reputation: 1
You've used the correct function but in wrong order of parameters:
public function testContainsThisOrThat()
{
$multi_kilobyte_string = "lorem ipsum...";
$option1 = "dolor";
$option2 = "amet";
$this->assertContains($multi_kilobyte_string, [$option1, $option2]);
}
Upvotes: 0
Reputation: 72336
The solution of this problem is simple (but not quite documented):
public function testContainsThisOrThat()
{
$multi_kilobyte_string = "lorem ipsum...";
$option1 = "dolor";
$option2 = "amet";
$this->assertThat($multi_kilobyte_string,
$this->logicalOr(
$this->stringContains($option1),
$this->stringContains($option2)
)
);
}
The best source of information for PHPUnit is its source code. Also, the autocomplete functionality of your editor (assuming you are using one that provides it).
Upvotes: 7