irpas技术客

SpringBoot Junit5 + Squaretest 单侧全家桶_无敌小田田_squaretest 激活

大大的周 5585

零、基础概念

Junit5 做单元测试,对于覆盖代码,保证代码质量很重要

Squaretest是IDEA插件,可以自动生成单侧文件,可以极大方便开发

通过IDEA查看各个文件的单侧覆盖率

一、Squaretest插件介绍

1、安装配置

2、安装后可以在IDEA顶部看到相关功能

3、生成测试文件

方法一:直接在Controller通过Alt+Insert生成文件(前提没有该controlle的test文件)

通过最下面一个选项,即会在test相应路径下生成test文件

?方法二、先使用junit在Controller名右键生成空的test文件,然后再通过进入test文件

通过快捷键 Alt+M 生成该类的方法的Test

4、单侧文件,初始化session

一般接口都使用的spring Security。会有session校验。因此使用第二个方法,个性化生成各个方法较为简便。

需注意:需要初始化 MockMvc? 和 session 以备后续使用

参考例子

@RunWith(SpringRunner.class) @TestMethodOrder(MethodOrderer.OrderAnnotation.class) @SpringBootTest(classes = WebappApplication.class) public class TaoBaoControllerTest { private MockHttpSession session; //session管理 @Autowired private WebApplicationContext applicationContext; private MockMvc mockMvc; @Test void testFrozenAcount() throws Exception { // Setup // Run the test final MockHttpServletResponse response = mockMvc.perform(get("/taobao/shopping") .param("userName", "testUser1") .session(session) //传递session .accept(MediaType.APPLICATION_JSON)) .andReturn().getResponse(); JSONObject result=JSONObject.parseObject(response.getContentAsString(Charset.defaultCharset())); //初始化出参编码,防止乱码 // Verify the results Assert.assertEquals(HttpStatus.OK.value(),response.getStatus()); Assert.assertEquals(Constant.RUN_SUCCESS,result.getString("statusCode")); Assert.assertEquals("购买成功!",result.getString("msg")); } @BeforeEach //初始化session void getUser() { //自定义对象 User user = new User(); user.setId("123"); user.setUsername("zhangsan"); session = new MockHttpSession(); session.setAttribute("User", user); mockMvc = MockMvcBuilders.webAppContextSetup(applicationContext).build(); //查询用 MockHttpServletRequest request = new MockHttpServletRequest(); request.getSession().setAttribute("User", user); RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(request)); } }

?5、通过Assert来判断单元测试的状态

二、通过IDEA查看单元测试覆盖率及成功率

打开IDEA配置

?选择All in package,完毕后,点击这个按钮

?

耐心等待执行完,可以再IDEA查看到各路径的单侧覆盖率

?左侧的项目也可以看到每个文件的覆盖程度

点开每个文件,看到绿色的代表通过的,红色的代表没有通过的 ,还需要针对红色的代码继续完善单元测试类

?


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #squaretest #激活 #零基础概念Junit5