2012-02-04 6 views
2

投稿要求を受け入れるメソッドの形式とそれに対応する機能テストの詳細を示した例は見つかりませんでした。以下は私がやっていることです。コントローラメソッドはnullのJSON文字列値を取得します。私はバインダーオプションを見ましたが、以下のアプローチは簡単で、この作業をしようとしています。私は何か些細なことを逃していますか?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にnullを取得しています。 – bobbypavan

+0

振り返ると、あなたが投稿した上記コードもうまくいっているはずです。後で確認してみましょう – bobbypavan

関連する問題