Я не нашел пример, детализирующий формат метода, который принимает пост-запрос и соответствующий функциональный тест для того же самого. Ниже то, что я делаю. Метод контроллера получает нулевое значение строки json. Я посмотрел на вариант с переплетом, но я чувствую, что приведенный ниже подход прост и пытается сделать эту работу. Я что-то упускаю из виду?
play v 1.2.4
маршруты
/v1/xyzs Application.createXyz(format:'json')
Контроллер
public static void createXyz(String xyzJson)
{
Xyz xyz = new Gson().fromJson(xyzJson, Xyz.class);
Xyz savedXyz = xyz.save();
render();
}
Функциональный тест
@Test
public void createXyzTest()
{
Xyz xyz = new Xyz("id", 12345, "Summary", "Main");
String body = new Gson().toJson(xyz);
Response response = POST("/v1/xyzs", "application/json", body);
assertStatus(201, response);
}
UPDATE:
Ниже код в функциональном тесте работал.
Xyz xyz = new Xyz("id", 12345, "Summary", "Main");
String body = new Gson().toJson(xyz);
Map<String,String> params = new HashMap<String,String>();
params.put("xyzJson", body);
Response response = POST("/v1/xyzs",params);