【Java Web】Springboot Controller的单元测试

Dependency

需要添加Junit5:

        
        
             org.junit.jupiter
            junit-jupiter-engine
            5.1.0
            test
        
        
            org.junit.platform
            junit-platform-launcher
             1.1.0 
            test
        
        

解释: JUnit Platform是提供了运行(测试框架)环境的平台,JUnit Jupiter 是新的Junit5(子项目提供了一个基于平台测试运行Jupiter的测试引擎),JUnit Vintage提供了Junit3/4的测试引擎(向前兼容)。

在test class上加入:

@RunWith(SpringRunner.class)
@SpringBootTest(classes=XXX(main class).class)

加入定义:

    @Autowired
    private WebApplicationContext webApplicationContext;
    private MockMvc mockMvc;

预操作:

    @Before
    public void setUp() throws Exception{
        mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();//建议使用这种
    }
Test方法:

注意: 此时Test Annotation的类不要引错,正确的应该是import org.junit.Test;

    @Test
    @DisplayName("Test Login Controller")
    public void test() throws Exception {
        //需要传入的参数
        User user = new User();
        user.setUserName("XXX");
        user.setPassWord("XXX");
        
        MvcResult mvcResult = mockMvc.perform(
                MockMvcRequestBuilders.post("/login")
                        .contentType(MediaType.APPLICATION_JSON)
                        .content(JSON.toJSONString(user)))
                .andReturn();
        
        System.out.println("result ==========" + mvcResult.getResponse().getContentAsString());
    }

你可能感兴趣的:(junit,springboot)