PHPUnit @expectedException with assertion

时间:2014-08-06 06:17:38

标签: exception phpunit assertion

我试图期望断言失败,然后我所有测试的集合不应该失败。

/**
* @expectedException Exception
*
*/
public function testGetAtlantisDriver(){

    $object = null
    $this->assertNotNull($object);

}

但这不起作用。

我得到的是断言失败

  

断言null不为空。

我预计测试会毫无失败地通过。我错了什么或我该怎么办才能通过?

谢谢

1 个答案:

答案 0 :(得分:3)

当您的代码应该抛出异常时,将使用@expectedException批注。这不包括PHPUnit断言错误。你不能期望断言失败。

如果按照您的建议方式运行会出现问题: 假设你有一个带有一些断言的测试方法,然后是一些用@expectedException抛出异常的代码。然后,如果某些断言失败了,你就不会知道,因为测试仍然会通过。

如果断言不正确,那么您无法进行测试,并且这是测试框架所期望的。

您只能将测试标记为已跳过

$this->markSkipped("reason for skipping");

如果您想暂时禁用测试。