我正在尝试使用Mock对一些代码进行单元测试。我想引发一个异常,并在重新引发之前测试该异常是否被捕获并调用另一个函数
except exception as e:
car.create_log(car_details)
raise e
单元测试:
car = Car()
car.registrations.update = Mock()
car.registrations.update.side_effect = RegistrationError()
car.create_log = Mock()
car.register_car('123123')
car.create_log.assert_called_once()
self.assertRaises(RegistrationError)
我可以确认该方法抛出错误,但无法测试在重新引发错误之前是否调用了方法create_log
。
这就是您应该如何使用assertRaises
:
with self.assertRaises(RegistrationError):
car.register_car('123123')
car.create_log.assert_called_once()
或者你可以给它传递一个可调用的参数:
self.assertRaises(RegistrationError, car.register_car, '123123')