使用 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(...)
我正在尝试使用 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(...)