2012-02-04 2 views
2

Я не нашел примера, описывающего формат метода, который принимает пост-запрос и соответствующий функциональный тест для него. Вот что я делаю. Метод контроллера получает значение null json string. Я посмотрел на вариант связующего, но я чувствую, что подход ниже, чтобы быть легким и пытаться сделать эту работу. Я пропустил что-то тривиальное?Воспроизвести метод контроллера рамки, который принимает POST

игры 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); 

ответ

1

Что делать, если String body = String.format("{\"xyzJson\": %s}", new Gson().toJson(xyz));

+0

Я добавил это мой тест, но контроллер все еще получает нуль для xyzJson. – bobbypavan

+0

Оглядываясь назад, приведенный выше код также должен был работать. позвольте мне попробовать позже подтвердить – bobbypavan

Смежные вопросы