嗨,我正在使用PHPUnit进行单元测试
我有一个关于使用ExpectOutputString/expectOutputRegex方法测试输出的问题
问题 :
function test_myTest() {
$this->expectOutputString('testxzxzxzxzxz');
$this->expectOutputString('test');
echo 'test';
}
即使生成了单元测试报告,该测试仍通过
最初的期望失败
与assert方法不同,如果有一个断言失败,则测试失败
示例assertTrue:
// this test fail because the first assertTrue fails
function test_myAssert() {
$this->assertTrue(false);
$this->assertTrue(true);
}
看起来这是PHPUnit中缺少的功能。
任何人都有想法或替代方法来实现我在测试输出时想要的吗?
最佳答案
expectOutputString
存储给定的字符串以与整个测试的输出进行比较,但是它会覆盖任何先前存储的字符串。换句话说,只有最后一次调用expectOutputString
才有效。您必须构建完整的输出字符串并仅调用一次expectOutputString
。
function test_myTest() {
$this->expectOutputString('testxzxzxzxzxz' . 'test');
echo 'test';
}
上面的操作将失败,因为
testxzxzxzxzxztest
不等于输出test
。