Don*_*kby 2 php unit-testing simpletest
我是PHP SimpleTest框架的新手,我很惊讶地看到失败的断言不会停止测试方法.换句话说,这会在测试报告中导致两条失败消息:
function testFoo() {
$this->assertTrue(true, 'first: %s');
$this->assertTrue(false, 'second: %s');
$this->assertTrue(false, 'third: %s');
}
Run Code Online (Sandbox Code Playgroud)
我的大部分单元测试经验都是使用JUnit和NUnit,并且一旦第一个断言失败,它们都会暂停测试方法.也许我已经习惯了,但似乎额外的失败信息只是噪音.它让我想起旧的C编译器因为缺少分号而会出现50个错误.
我可以将SimpleTest配置为快速失败,还是只需要使用不同的样式?
您可以扩展/修改Reporter类,以便在paintFail()之后退出().
(不需要修改单元测试)
要么
assert*函数返回一个布尔值,例如:
$this->assertTrue(false, 'second: %s') or return;
Run Code Online (Sandbox Code Playgroud)
将结束当前的测试功能.
PS:
如果您使用PHPUnit_TestCase类而不是UnitTestCase,则assert*函数不会返回布尔值.