我有an external validator library,需要在测试中访问请求和响应。响应很简单 - 我只需要编写一个隐式转换到库所需的Java接口 - 但我想编写代码,让我在请求/响应对上调用外部验证器以及断言其他东西,而不需要提两次请求(这可能是错误的潜在来源 - 我可能会意外地使请求不同)。我怎么能这样做?
我想的可能是
Post(url) ~> validateRAML(sealRoute(myRoute)) ~> check { ... }
但validateRAML
会是什么样的?
答案 0 :(得分:0)
我无法找到使用Spray Testkit DSL的方法,所以我最终做了一个显而易见的创建方法:
def validateRAML(req: HttpRequest, response: HttpResponse) = {
// This invokes implicit methods that I have defined to convert req and response
apiDef.testAgainst(req, response) should be('empty)
}
def validateRAML[T](req: HttpRequest, r: Route)(body: => T): Unit = {
req ~> r ~> check {
body
validateRAML(req, response)
}
}