使用假服务器进行集成测试

Integration Testing with a fake server

我有一个连接到我想测试的一组 api 的服务。

我想为我的集成测试制作一个假服务(模拟失败情况)

我不能简单地使用@RestController,因为它们在测试期间没有加载,我查看了模拟服务器,但我不确定它是否是我正在寻找的,因为我不希望我的测试触发模拟调用,而是我的代码应该正常触发 api 调用,只需使用模拟服务器而不是实际服务器(基础 url 是可配置的,因此我可以使我的服务指向模拟服务器)

更新 1:

我看到的唯一选择可能是启动 Cargo 并在其中部署我的服务?

更新 2: 我刚刚发现 Wiremock。这在这里可以用吗?

Mockito(http://docs.mockito.googlecode.com/hg/1.9.5/org/mockito/Mockito.html) 是一个很好的模拟方法调用库。它可以 return 给定特定输入的特定值。使用这个库,您可以模拟一个 REST 客户端来模拟您的应用程序和 REST api 之间的通信。

我选择了 WireMock http://wiremock.org/

在 junit 测试中设置 ClassRule 将在测试开始前启动假服务器并运行。