vic*_*ass 5 java rest rest-assured
我想针对使用回调参数的REST端点编写一些测试。听起来可能会令人困惑,所以这里有一个解释:
第一个调用是/publish
带有有效负载的POST :
{"callbackURL":"http://localhost:609/test"}
服务器回复200和一些json
服务器使用http://localhost:609/test/status
基于json的有效负载对POST进行异步POST (基于提供的回调URL)
我使用TestNG和Rest-assured(不是强制性的)构建了一个测试。我的问题是如何验证初始答复和在回调URL处收到的消息。我首先想到的一种(可能是幼稚的)方法是实现一个HTTP服务器,该服务器侦听http://localhost:609/test/status
,当有消息出现时,它将写入同步对象,测试从该对象读取并验证。但是,听起来有些棘手(测试本地服务器将使用内部类,等等)并且脆弱。谁能想到更好的方法?
Pet*_*mas -2
使用空手道。免责声明:我是开发商。
以下是有关如何实现此目的的示例(包含源代码链接):https://twitter.com/KarateDSL/status/1417023536082812935
我将尝试以简单的方式解释该图。
Test
测试开始时会创建一个模拟 HTTP 服务器。这里的端口是动态的,但如果客户端是远程的,您可以很好地将其硬编码为例如 8080。所以客户端可以调用http://hostname/8080/send
Test
等待 Java 类发出状态更改信号 - 当有东西调用Mock
.Mock
Java 类。但是您不需要走那么远来仅仅响应回调,只需CompletableFuture
通过调用某些方法而不是您QueueUtils.send()
在示例中看到的地方来完成Test
本身正在调用 ,Mock
但在您描述的场景中,您可以很好地调用/publish
,然后等待回调。/publish
本身中传递 URL。 归档时间: |
|
查看次数: |
491 次 |
最近记录: |