def test_invalid_host(self):
controller = SSHController("host name")
self.assertRaises(SSHException, controller.login())
#test_invalid_host End
controller.login()是否会在测试通过之前完成,或者只要引发SSHException就会通过测试?单元测试结束之前assertRaises函数是否会完成?
def test_invalid_host(self):
controller = SSHController("host name")
self.assertRaises(SSHException, controller.login())
#test_invalid_host End
controller.login()是否会在测试通过之前完成,或者只要引发SSHException就会通过测试?单元测试结束之前assertRaises函数是否会完成?
只要引发SSHException,异常就会被assertRaises
方法捕获。因此controller.login
的其余部分未运行。
PS。请务必controller.login
后打电话到
self.assertRaises(SSHException, controller.login)
没有括号。如果编写controller.login()
那么在调用assertRaises
方法之前确实会调用login
方法,因为所有参数都在传递给函数/方法之前进行评估。
我想你需要传递controller.login而不用调用它(即删除'()')。当它引发错误时它会停止。 –
'assertRaises'声明调用'controller.login'会产生'SSHException'。如果该函数不会引发一个 - 即使它在内部执行,但是会再次捕获它 - 那么assertRaises将失败。 – katrielalex