【Java Web】Springboot Controller的单元测试

Dependency需要添加Junit5:

<!-- Junit dependency -->
        <dependency>
            <groupId> org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.1.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-launcher</artifactId>
            <version> 1.1.0 </version>
            <scope>test</scope>
        </dependency>
        <!-- Junit dependency -->

解释: 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;
*

@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());
}

原文 

https://segmentfault.com/a/1190000022472700

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 【Java Web】Springboot Controller的单元测试

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址