我正在编写单元测试来验证两个库的功能是否相同。本质上,测试一个接口。
但是,在一些与错误处理相关的测试中。错误级别不同,必须有所不同,因为例如,一个生成e_警告,另一个只能生成e_用户警告。
所以问题是。在php单元中是否有断言可以说,错误必须是两个可能结果之一?类似于:

assertIsIn(array(E_WARNING, E_USER_WARNING), $generatedError);

我知道我可以通过在assertcontents()中交换预期的和实际的答案,或者可能通过一些对结果的断言前操作来解决这个问题。然而,是否有更清洁的方法?

最佳答案

也许您可以用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);
}

希望能帮上忙

08-16 22:53