您好我正在使用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中缺少的功能..
任何人在测试输出时都有想法或替代方法来实现我想要的东西吗?
答案 0 :(得分:7)
expectOutputString
存储给定的字符串以与整个测试的输出进行比较,但它会覆盖以前存储的任何字符串。换句话说,只有对expectOutputString
的最后一次调用才有效。您必须构建完整的输出字符串并仅调用expectOutputString
一次。
function test_myTest() {
$this->expectOutputString('testxzxzxzxzxz' . 'test');
echo 'test';
}
上述操作会失败,因为testxzxzxzxzxztest
不等于输出test
。