【发布时间】:2017-03-11 17:50:29
【问题描述】:
我想针对使用回调参数的 REST 端点编写一些测试。可能听起来令人困惑,所以这里有一个解释:
-
第一次调用是 POST 到
/publish的有效载荷:{"callbackURL":"http://localhost:609/test"} 服务器回复 200 和一些 json
服务器对
http://localhost:609/test/status进行异步 POST(基于提供的回调 URL),带有一些 json 负载
我使用 TestNG 和 Rest-assured(非强制性)构建了一个测试。我的问题是如何验证初始回复和在回调 URL 处收到的消息。
我首先想到的一种(可能是幼稚的)方法是实现一个 HTTP 服务器,它在http://localhost:609/test/status 进行侦听,当有东西出现时,它会写入一个同步对象,测试会从中读取和验证。但是,听起来有点棘手(测试本地服务器将使用内部类等)并且很脆弱。谁能想到更好的方法?
【问题讨论】:
-
我需要做同样的事情。你想出解决方案了吗?
-
不,与此同时,我开始使用 Spring Cloud Contracts 来获得更大的视野
-
方法是正确的,
synchronized object from which the test reads and validates使用带有超时的CountDownLatch。可等待性是用于异步流断言的好框架。使用 [spark-java] 作为可以在测试中引导的测试端点。
标签: java rest karate rest-assured