TestContextフレームワークを使用して、開発環境でサーバ側のメソッドに関するテストが実施できます。
例
サーバ側のメソッド:
@Controller @RequestMapping(value = "/Sample") public class SampleController { @RequestMapping(value="/user/{userId}", method=RequestMethod.GET) public ModelAndView findUser(@PathVariable String userId) { ModelAndView mav = new ModelAndView("displayUser"); User user = userServcie.findUser(userId); mav.addObject("user", user); return mav; } ....... } |
上記メソッドのテスト:
@RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration("WebContent") @ContextConfiguration(classes={ControllerConfiguration.class,..}) public class SampleControllerTest { @Autowired WebApplicationContext wac; // cached private MockMvc mockMvc; @Before public void setup() { this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); } @Test public void findUser Test() throws Exception { ResultActions resultAction =this.mockMvc.perform(MockMvcRequestBuilders.get("/Sample/user/123")); resultAction.andExpect(MockMvcResultMatchers.status().isOk()); resultAction.andExpect(MockMvcResultMatchers.view().name("displayUser")); } ..... } |
ポイント
JSON形式のリクエストに対するテストを行うにはMockMvcResultMatchersクラスのjsonPathメソッドを使用します。jsonPathメソッドを使用する場合は下記のライブラリをクラスパスに設定する必要があります。
[Interstageのインストールディレクトリ]\BAS\spring32\lib\json-path-0.8.1.jar
[Interstageのインストールディレクトリ]\BAS\spring32\lib\json-smart-1.1.1.jar
/opt/FJSVibs/lib/json-path-0.8.1.jar
/opt/FJSVibs/lib/json-smart-1.1.1.jar