Junit Mybatis SpringBoot 单元测试流程梳理

@Junit Mybatis SpringBoot 单元测试流程梳理

Junit Mybatis SpringBoot Controller Service Dao 单元测试流程梳理

踩坑预警

    将包名之前的test.去掉 就没有 unable to find a @SpringBootConfiguration 的错误了

idea 整合 Junit

编写数据库连接父测试类

在 xml 里使用对象 url 的时候 注意 多个 连接 的 配置 用 & 分割 用 xml 配置 mybatis 的 resource 记得

<mappers
<mapper>
</mapper>
</mappers>

Controller 的单元测试

    使用 Mockmvc 模拟网络请求 遇到 通过设置 .contentType(MediaType.APPLICATION_JSON)解决了问题
mvc.perform(MockMvcRequestBuilders.post("url")
            .contentType(MediaType.APPLICATION_JSON_UTF8)
            .accept(MediaType.APPLICATION_JSON_UTF8)
            .content(requestString) //传json参数
            .session(session)
    )
            .andExpect(MockMvcResultMatchers.status().isOk())
            .andDo(MockMvcResultHandlers.print());

Service 的单元测试

Dao 的单元测试

一个包含SqlSession的单元测试父类的编写

与测试数据相关的问题

    使用Json文件来存储测试数据,能和接口文档比较好地无缝衔接,注意绝对路径与相对路径的问题 直接在测试类里用put方法构造测试数据 注意在测试数据的主键上作修改,使得测试数据可以通过过滤器等判定条件,但是在数据库里可以被识别出来 测试的脏数据可以被定期清理。 加上@Transactional 注解,可以让测试的脏数据回滚

测试报告的生成

idea 运行完Junit后,点击标记,生成单元测试报告,一个类一个HTML网页

如何给老代码补充单元测试

将单元测试整合进TDD

经验分享 程序员 微信小程序 职场和发展