说,我的应用程序中有一个依赖于外部API的功能 - 我提供了一个接口,它调用我的服务器,服务器依赖于它,调用一些外部API并响应某些内容客户。如果我想用黄瓜为此编写验收测试,我如何将调用存根到那个外部API,例如,任何对https://www.cool-api.io/foo
的GET调用都会立即返回一些预定义的JSON响应和一些预定义的标题,对该URL的任何POST请求都会返回一个具有某些预定义状态和标题的响应,等等。如何进行验收测试如果你正在使用黄瓜?
答案 0 :(得分:0)
我可能会编写自己的存根,它能够伪造一个具有预期内容和标头集的响应实现。如果响应对象是使用接口定义的,那么请手动滚动存根以实现该接口。
在我看来,使用Mockito可能会很麻烦。 Mockito很棒,但设置这样复杂的返回值可能会很混乱。在响应接口的实现中对响应进行硬编码可能更容易。
我会使用除Cucumber之外的其他工具来检查与外部服务的实际集成。
答案 1 :(得分:0)
我们使用WireMock或MockServer。您可以将它们实现为存根API调用。 另外,我建议使用像Jackson这样的框架从域对象生成json。这样做的好处是不必在代码库中维护json Strings / docs,并编译时间检查是否在测试中创建了有效的域对象。