带有断言的PHPUnit@expectedException

带有断言的PHPUnit@expectedException,exception,phpunit,assertion,Exception,Phpunit,Assertion,我试图期望断言失败,然后我的所有测试集不应该抛出失败 /** * @expectedException Exception * */ public function testGetAtlantisDriver(){ $object = null $this->assertNotNull($object); } 但这是行不通的 我得到的是一个断言失败 无法断言null不是null 我希望考试能顺利通过。我做错了什么,或者我能做些什么来通过这次考试 谢谢当您的代码应该引发

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

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

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

}
但这是行不通的

我得到的是一个断言失败

无法断言null不是null

我希望考试能顺利通过。我做错了什么,或者我能做些什么来通过这次考试


谢谢

当您的代码应该引发异常时,会使用@expectedException注释。这不包括PHPUnit断言错误。您不能期望断言失败

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

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

}
如果它按照您建议的方式工作,则会出现问题: 假设您有一个带有一些断言的测试方法,然后有一些代码抛出带有@expectedException的异常。然后,如果某些断言失败,您将无法知道,因为测试仍然会通过

如果断言不正确,则无法通过测试,而这正是测试框架所期望的

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

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

如果要临时禁用测试。

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

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

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

}
如果它按照您建议的方式工作,则会出现问题: 假设您有一个带有一些断言的测试方法,然后有一些代码抛出带有@expectedException的异常。然后,如果某些断言失败,您将无法知道,因为测试仍然会通过

如果断言不正确,则无法通过测试,而这正是测试框架所期望的

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

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

如果要临时禁用测试。

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

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

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

}
如果它按照您建议的方式工作,则会出现问题: 假设您有一个带有一些断言的测试方法,然后有一些代码抛出带有@expectedException的异常。然后,如果某些断言失败,您将无法知道,因为测试仍然会通过

如果断言不正确,则无法通过测试,而这正是测试框架所期望的

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

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

如果要临时禁用测试。

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

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

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

}
如果它按照您建议的方式工作,则会出现问题: 假设您有一个带有一些断言的测试方法,然后有一些代码抛出带有@expectedException的异常。然后,如果某些断言失败,您将无法知道,因为测试仍然会通过

如果断言不正确,则无法通过测试,而这正是测试框架所期望的

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

$this->markSkipped("reason for skipping");
如果要临时禁用测试