我有以下代码来创建新用户。我正在使用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;
}
非常感谢
答案 0 :(得分:1)
编写测试,将其他内容放入参数$ UserType中,然后将右侧类的实例。例如一个字符串:
/**
* @covers MyClass::Create
* @expectedException Exception
*/
public function testCreate() {
$myTestedInstance->Create('email@example.com', 'invalid param', ....);
}