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

Допустим, у меня есть кейс-класс с json writer при условии

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам