Как выполнить действие контроллера модульного тестирования с телом json?

Допустим, у меня есть класс case с предоставленным писателем json.

val song1 = Song("Song one", "Artist 1", "Song url 1")

Затем я пытаюсь вызвать действие контроллера create с помощью синтаксического анализатора Action(parse.json).

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]]

Что мне не хватает?


person Khanetor    schedule 05.07.2015    source источник


Ответы (1)


Похоже, что .withJsonBody предназначен для внутреннего использования. Просто используйте

val json = /* some JsValue */
FakeRequest().withBody(json)

и запрос будет автоматически правильно проанализирован с правильными заголовками.

person Khanetor    schedule 05.07.2015