我们的应用程序包含错误报告微服务。当我们的应用程序抛出异常时,信息将保存在数据库中,一条消息会发送到错误报告微服务,并向开发人员发送一封电子邮件。这在生产中非常有用,但使集成测试变得更加迟钝,因为永远不会打印异常,并且测试不一定会失败。我想模拟错误报告微服务,以便它在数据库中查找消息和堆栈,记录它,然后引发异常。这是可能的吗?
这是应该模拟的方法的签名:
public void emailException(Long exceptionInfoPrimaryKey);
不幸的是我无法使用PowerMock。
最佳答案
您的应用程序是否使用某些 DI 框架?如果是,那么您始终可以扩展所述类(假设它不是最终的)并使用您自己的实现来覆盖所述 emailException
方法以进行集成测试。当然,您应该将这个扩展类注入(inject)到您的应用程序中。
关于java - 使用 Mockito 根据参数从 void 方法抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41991882/