Play2 Controller Test发送JSON

时间:2014-04-02 08:31:15

标签: json testing playframework-2.0 playframework-2.2

我想通过发送一些JSON来测试我的控制器:

 val fakeRequest = FakeRequest(Helpers.POST, controllers.routes.AuthController.login().url,
      FakeHeaders(Seq(HeaderNames.CONTENT_TYPE ->Seq(MimeTypes.JSON))),json)

 val result = controllers.AuthController.login()(fakeRequest)

 status(result) must equalTo(OK) <== Cannot check requires Future[SimpleResult]

返回的类型是:

Iteratee[Array[Byte],SimpleResult]

如何获得Future [SimpleResult]? 当我使用没有参数的简单FakeRequest时,一切正常:

 val fakeRequest = FakeRequest()

 val result = controllers.AuthController.list()(fakeRequest)

 status(result) must equalTo(OK)

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,只需使用另一个构造函数和方法withJsonBody:

FakeRequest(Helpers.POST, controllers.routes.AuthController.login().url).withJsonBody(json).withHeaders(
      (HeaderNames.CONTENT_TYPE, MimeTypes.JSON))