PHPUnit异常

时间:2013-11-02 06:33:19

标签: php unit-testing phpunit

我有以下代码来创建新用户。我正在使用PHPUnit来准备测试用例,但是我的代码覆盖率无法涵盖异常情况,即throw new Exception(__CLASS__ . ': Invalid data');.

有人可以告诉我如何使用assertInstanceOf()或其他方式在phpunit中覆盖异常情况吗?

/**
* Creates a new user
*
* @param string            $email
* @param UserType       $UserType
*
* @return UserID
* @throws Exception If Invalid Data is Provided
*/
static public function Create($email, UserType $UserType)
{
    if (!$UserType instanceof UserType) {
        throw new Exception(__CLASS__ . ': Invalid data');
    }

    $UserID = parent::Create($email, $UserType);

    return $UserID;

}

非常感谢

1 个答案:

答案 0 :(得分:1)

编写测试,将其他内容放入参数$ UserType中,然后将右侧类的实例。例如一个字符串:

/**
* @covers MyClass::Create
* @expectedException Exception
*/
public function testCreate() {
    $myTestedInstance->Create('email@example.com', 'invalid param', ....);
}