0

Spring 3 で Java サーブレットを使用しています。特定の URL のハンドラーがあるかどうかを確認する方法はありますか?

Jsp ファイルで使用されているすべての URL が確実に処理されるようにするテストを実装しようとしています。URL リファクタリングを行いたい場合に備えて、jsps に「壊れたリンク」がないことを確認したい ...

ありがとう

4

1 に答える 1

1

JUnit と Spring 3 を使用している場合の FooController のテストの例を次に示します。

@Controller
@RequestMapping(value = "/foo")
public class FooAdminController {

    @RequestMapping(value = "/bar")
    public ModelAndView bar(ModelAndView mav) {

        mav.setViewName("bar");
        return mav;
    }
}

FooController のテストケース:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"file:src/path/to/servlet-context.xml" })
public class FooControllerTest {

    @Autowired
    private RequestMappingHandlerMapping handlerMapping;

    @Autowired
    private RequestMappingHandlerAdapter handleAdapter;

    @Test
    public void fooControllerTest() throws Exception{

        // Create a Mock implementation of the HttpServletRequest interface
        MockHttpServletRequest request = new MockHttpServletRequest();

        // Create Mock implementation of the HttpServletResponse interface
        MockHttpServletResponse response = new MockHttpServletResponse();

        // Define the request URI needed to test a method on the FooController
        request.setRequestURI("/foo/bar");

        // Define the HTTP Method
        request.setMethod("GET");

        // Get the handler and handle the request
        Object handler = handlerMapping.getHandler(request).getHandler();
        ModelAndView handleResp = handleAdapter.handle(request, response, handler);

        // Test some ModelAndView properties
        ModelAndViewAssert.assertViewName(handleResp ,"bar");
        assertEquals(200, response.getStatus());
    }
}
于 2013-01-15T00:04:19.943 に答える