SpringMVCフレームワークの下でControllerテストクラスの書き方

1375 ワード

SpringMVCフレームワークの下でControllerテストクラスの書き方


多くのコード友はこのような状況に遭遇する可能性があります.サービス層のJunit 4テストクラスをよく書きますが、ある日Controllerのテストクラスを書くのは、急に愚かになったのではないでしょうか.Controllerのテストクラスと私たちが通常書いているJunit 4のテストクラスは同じではありませんよ.あまり話さないで、直接コードをつけます.
@RunWith(SpringJUnit4ClassRunner.class)// SpringJunit 
@ContextConfiguration(locations = {"classpath:/applicationContext.xml","classpath:/spring-mvc.xml"})// , 
@WebAppConfiguration// applicationContext webApplicationContext
public class ControllerTest {
    private MockMvc mockMvc;
    private MockHttpSession session;
    // Web , MockMvc;
    @Autowired
    private WebApplicationContext wac;

    @Before()// 
    public void setup() {
        mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();  // MockMvc 
        session=new MockHttpSession();
        SysUserSession sysUserSession=new SysUserSession();// session , session 
        sysUserSession.setSetId(1);
        session.setAttribute("sysUserSession",sysUserSession);
    }
    @Test
    public void getControllerTest() throws Exception{
        MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get("/ ")
            .accept(MediaType.TEXT_HTML)
            .contentType(MediaType.TEXT_HTML)
            .session(session))
            .andDo(MockMvcResultHandlers.print())
            .andReturn();
    }
}