0

以下のテストは 1 つの環境で正常に動作しますが、getJson() サービスが実行されているサーバーに依存しないようにテストを変更するにはどうすればよいですか?

ドメイン名が何であるか (この場合はその ) が問題にならないように、モックの Spring json オブジェクトを作成する必要がありますhttp://myapplicationか?

 @Test
    public void jsonResponse() throws Exception
    {

URL oracle = new URL("http://myapplication/newJson.json");
    URLConnection yc = oracle.openConnection();
    BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
    String inputLine;
    String json;
    while ((inputLine = in.readLine()) != null) 
        json += inputLine;
    in.close();

    }

    My controller class is defined like : 

        @Controller
    @RequestMapping("myservice")
    public class Controller {

        @RequestMapping(value = "/newJson.json", produces = MediaType.APPLICATION_JSON_VALUE)
        public @ResponseBody String getJson() {
            return "{ test:testJson}";
        }   
}
4

2 に答える 2

0

spring-test-mvcを使用できます。または、追加の依存関係が必要ない場合は、URLを介してではなく、コントローラーを直接呼び出す単体テストを作成できます。

于 2012-07-31T16:15:11.853 に答える
0

mockitoを使用して URLConnection をモックします。

于 2012-07-31T16:23:48.040 に答える