使用 ScalaTest 测试 PlayFramework (2.5.x) Web API

Testing a PlayFramework (2.5.x) Web API using ScalaTest

我正在尝试使用 ScalaTest 测试我的网络 api,但我无法让 API 执行我的 siteData() 操作。以下代码生成 400,但 运行 来自外部的相同负载工作正常。

class DeviceApiSpec extends TestEnvironmentSpec with Results {

    "DeviceApi#siteData()" should {

     val api = new DeviceApi(...) // new up the controller

         "accept a valid location" in {
             val apikey = ...
             val location = Json.obj(...)
             val request = FakeRequest(POST, "/api/device")
                        .withHeaders(apikey)
                        .withHeaders("Content-Type" -> "application/json")
                        .withJsonBody(location)
             val result = api.siteData().apply(request).run()
             // do some assertions once I get it working
         }  
     }
}    

headers 和 body 是正确的。我不确定我是否正确设置了测试,所以想知道是否有人可以发现一个明显的错误。

我能够让它工作。我没有通过 apply().run() 执行 api,而是使用 EssentialActionCaller.

val result = call(api.siteData(), request)
status(result) mustBe OK
contentAsJson(result) mustBe Json.obj(...)