我们的应用程序包含一个错误报告微服务。当在我们的应用程序中引发异常时,该异常会将信息保存在数据库中,会向错误报告微服务发送一条消息,并向开发人员发送电子邮件。这在生产中很棒,但使集成测试更加迟钝,因为异常永远不会打印,测试不一定会失败。我想模拟错误报告微服务,以便它在数据库中查找消息和堆栈,记录它,然后引发异常。这是可能的吗?
以下是应该被模拟的方法的签名:
public void emailException(Long exceptionInfoPrimaryKey);
不幸的是,我不能使用PowerMock。
您是否正在为您的应用程序使用一些 DI 框架?如果是,那么您可以随时扩展所述类(假设它不是最终的),并使用您自己的集成测试实现覆盖所述emailException
方法。当然,您应该将此扩展类注入到应用程序中。