phpunit assert 包含两种可能

Mic*_*son 1 phpunit

我如何要求 PHPUnit 断言一个长字符串包含两个可能的选项之一?任何一个结果都应该断言为真。像这样的东西?

$multi_kilobyte_string = "lorem ipsum...";
$option1 = "dolor";
$option2 = "amet";
$this->assertContains([$option1, $option2], $multi_kilobyte_string);
Run Code Online (Sandbox Code Playgroud)

axi*_*iac 5

这个问题的解决方案很简单(但没有完全记录):

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)
        )
    );
}
Run Code Online (Sandbox Code Playgroud)

PHPUnit 的最佳信息来源是它的源代码。此外,您的编辑器的自动完成功能(假设您使用的是提供它的功能)。