我正在编写单元测试来验证两个库的功能是否相同。本质上,测试接口(interface)。
但是,在一些与错误处理相关的测试中。错误级别不同,必须不同,因为例如一个生成 E_WARNING,另一个只能生成 E_USER_WARNING。
那么问题来了。 PHP 单元中是否有一个断言可以说错误必须是两个可能结果之一?像这样的东西:
assertIsIn(array(E_WARNING, E_USER_WARNING), $generatedError);
我知道我可以通过在 assertContains() 中交换预期答案和实际答案或者可能对结果进行一些预断言操作来解决这个问题。然而,有更清洁的方法吗?
最佳答案
也许你可以用 assertContains 来实现方法(断言干草堆中包含一根针)。例如:
public function testAssertIsIn()
{
$errorLevel = array(E_WARNING, E_USER_WARNING);
$generatedError = E_WARNING;
$this->assertContains($generatedError, $errorLevel);
$generatedError = E_USER_WARNING;
$this->assertContains($generatedError, $errorLevel);
}
希望对你有帮助
关于PHPUnit Assert 两种可能结果之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40538902/