Jie*_*eng 7 php phpunit exception
我怀疑PHPUnit显示单行测试没有涵盖1行代码,因为抛出的异常(但我抓到了)
我有单元测试应该涵盖那一行
/**
* @expectedException Doctrine\ORM\NoResultException
*/
public function testCannotLoginInvalidUser() {
$user = User::login($this->em, 'nonExistant', 'password');
$this->assertNull($user);
}
Run Code Online (Sandbox Code Playgroud)
为什么我的代码覆盖率仍然反映不包括在内?
我做了一个测试...添加echo b4返回null ...我发现那行真的没有被覆盖......
try {
$user = $query->getSingleResult();
} catch (Exception $e) {
echo 'caught exception'; <-- this does not get executed.
return null;
}
Run Code Online (Sandbox Code Playgroud)
一旦抛出异常,PHPUnit是否会跳过所有执行?
更新:我觉得我使用@expectedException错了......
您的代码示例只是冰山一角,很难查明确切的问题。
但一个细节对我来说似乎很可疑:鉴于您的登录方法位于 Application\Models 中,那么以下代码
try {
$user = $query->getSingleResult();
} catch (Exception $e) {
Run Code Online (Sandbox Code Playgroud)
不会捕获任何异常,它会捕获 \Application\Models\Exception - 如果您定义了这样的类。
也许这就是您的异常处理程序不运行的原因。
| 归档时间: |
|
| 查看次数: |
1598 次 |
| 最近记录: |