Как выполнить модульное тестирование действия контроллера с телом 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)
и запрос будет автоматически проанализирован с правильными заголовками.