Spray testkit测试中的访问请求

时间:2015-09-14 18:07:31

标签: spray spray-test

我有an external validator library,需要在测试中访问请求和响应。响应很简单 - 我只需要编写一个隐式转换到库所需的Java接口 - 但我想编写代码,让我在请求/响应对上调用外部验证器以及断言其他东西,而不需要提两次请求(这可能是错误的潜在来源 - 我可能会意外地使请求不同)。我怎么能这样做?

我想的可能是

Post(url) ~> validateRAML(sealRoute(myRoute)) ~> check { ... }

validateRAML会是什么样的?

1 个答案:

答案 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)
  }
}