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