我正在编写一个PHPUnit测试套件,并且遇到了一些问题。PHPUnit测试通过时应该失败
下面是测试:
public function testSomething(){
$stub = $this->getMockForAbstractClass('\core\classes\ImportedFile');
$stub->expects($this->exactly(4))
->method('thismethoddoesntexist');
$this->markTestIncomplete('not finished implementing');
}
出于某种原因,这个测试是不是失败。它应该是因为该方法不存在,因此不会被调用一次,更不用说四次了。不管我在那里放什么东西,即使我输入了一个确实存在的方法名称,并且说我预计它会运行100,000次,但这显然是错误的,它仍然会通过。
我觉得这很奇怪,因为我在以前的测试中有类似的检查工作正常。
是否有其他人遇到这样的问题?
我没有看到你实际上正在调用任何方法或断言什么......你设置了期望值,但是你的测试没有做任何事情。 – Kryten
是的,测试只是通过写入中途 - 我会明显地添加一些方法调用等。尽管如此,我仍然认为这应该是一个测试失败,因为我期望一种方法被调用,而不是。 – user1578653
'markTestIncomplete'旨在防止您的测试失败。它没有通过,但你的测试套件会说所有的测试都通过了。 http://phpunit.de/manual/current/en/phpunit-book.html#incomplete-and-skipped-tests.incomplete-tests.examples.SampleTest.php – Schleis