在引发异常之前调用的模拟断言函数



我正在尝试使用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')

最新更新