Spring 3 で Java サーブレットを使用しています。特定の URL のハンドラーがあるかどうかを確認する方法はありますか?
Jsp ファイルで使用されているすべての URL が確実に処理されるようにするテストを実装しようとしています。URL リファクタリングを行いたい場合に備えて、jsps に「壊れたリンク」がないことを確認したい ...
ありがとう
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());
}
}