如何使用 json 主体对控制器动作进行单元测试?
How to unit test controller action with json body?
假设我有一个案例class,作者json提供
val song1 = Song("Song one", "Artist 1", "Song url 1")
然后我尝试使用解析器 Action(parse.json)
调用控制器操作 create
adminController.create(FakeRequest().withHeaders(CONTENT_TYPE -> "text/json").withJsonBody(Json.toJson(song1))).run
我收到一个错误
[Invalid Json: No content to map due to end-of-inpu at [Source: [B@1ad542ff; line: 1, column: 1]]
我错过了什么?
.withJsonBody
似乎是供内部使用的。只需使用
val json = /* some JsValue */
FakeRequest().withBody(json)
并且请求将被自动正确地解析为正确的headers。
假设我有一个案例class,作者json提供
val song1 = Song("Song one", "Artist 1", "Song url 1")
然后我尝试使用解析器 Action(parse.json)
create
adminController.create(FakeRequest().withHeaders(CONTENT_TYPE -> "text/json").withJsonBody(Json.toJson(song1))).run
我收到一个错误
[Invalid Json: No content to map due to end-of-inpu at [Source: [B@1ad542ff; line: 1, column: 1]]
我错过了什么?
.withJsonBody
似乎是供内部使用的。只需使用
val json = /* some JsValue */
FakeRequest().withBody(json)
并且请求将被自动正确地解析为正确的headers。