【发布时间】:2017-11-17 23:05:36
【问题描述】:
我正在尝试测试一种 Java 方法,该方法向远程 REST 服务器发出请求以检索一些 JSON 数据,从该 JSON 中提取一个 ID,然后使用该 ID 在不同端点向同一服务器发出另一个请求.
使用 Mockito 的 MockRestServiceServer,我可以成功地模拟和测试期望对一个端点发出单个请求的服务器,但似乎我无法使用它来创建具有一组具有自己期望和响应的预定义端点的服务器。
为了测试向远程服务器发出多个不同请求的单个函数,我如何模拟具有多个端点的服务器?
【问题讨论】:
-
尽管我相信您已经连贯地编写了您的问题,但我很难理解为什么您不能只提出多个请求。向第一个端点发送请求,解析 JSON 响应,然后使用先前解析的 JSON 向不同端点之一提交新请求,并根据需要重复多次。 Mockito 的 MockRestServiceServer 可能在其服务器的 API 中有一些代码可以让您执行此操作,因此不妨深入研究他们的文档。
-
我正在尝试在进行两个 API 调用的 Web 脚本中测试单个函数。据我所知,我不能先发制人地在 MockRestServiceServer 上定义两个端点,然后运行该方法,以便在调用该函数时两个端点都存在于模拟服务器中。
-
@AdvillPill 好的,一个好的短期修复可能是只运行两个 MockRestServiceServer,每个都有自己的端点。
-
@Shn_Android_Dev,我已经尝试过这样做。似乎创建一个新的 MockRestServiceServer 实例会覆盖之前的实例。
-
我的意思是,你的服务调用外部api时的顺序有关系吗?如果是,则 mockedCall 需要遵循该顺序。如果代码(生产)不关心订单,您的答案是正确的。
标签: java json rest mockito functional-testing