【问题标题】:Wiremock test and pagination productionWiremock测试和分页制作
【发布时间】:2022-02-02 20:56:08
【问题描述】:

我找不到我的问题的答案,也许是一个有趣的问题。 我在我的生产代码 feignClient 中有通过 100 个元素向另一台服务器询问可分页信息的信息 - pageSize(0, 1, 2... etc)。它正在工作)) 但是后来我尝试通过wireMock测试我的代码,我模拟了分页的响应,我的测试在循环中死了。我无法理解进行集成测试的最佳方法,或者我的生产代码很糟糕。 零件:

List<Object> objects = new ArrayList<>();
List<Answer> convertedObjects;
Pageable page = PageRequest.of(0, 100);

do {
page.next();

List<Object> list = FeignClient.answer(page.pageNumber(), page.pageSize());

convertedObjects = converterList(list, Object.class);
objects.addAll(convertedObjects);
} while(!convertedObject.isEmpty());

那我测试一下

Wiremock.stubFor(url).willReturn(object)...
restTemplate.exchange(url)...

所以我的生产代码中的这个循环不要让下一步继续。因为wireMock每次都在回答我的willReturn。 其实我只需要返回一次,怎么处理呢? 谢谢!

【问题讨论】:

  • 是否有任何额外的查询参数或任何东西可以区分第一个请求和第二个请求?您可以使用优先级来拥有两个单独的存根。

标签: java spring integration-testing resttemplate wiremock


【解决方案1】:

这就是场景功能的用途。

您需要将两个存根放入一个场景(即相同的场景名称),使第一个存根触发转换到新状态,然后使第二个存根取决于场景处于第二个状态和第一个存根存根取决于处于 STARTED 状态的场景。

见:http://wiremock.org/docs/stateful-behaviour/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 2018-06-01
    • 2019-07-04
    相关资源
    最近更新 更多