一、单元测试的目的
在我们的日常开发中,通常我们完成自己负责部分功能的代码后会先进行自测交给测试部门,自测的方式有很多种,比如Postman、Jmeter、Junit单元测试等。
目的:可以简单的理解为在我们增加或者改动了部分代码以后再次对所有逻辑进行检测,尤其是在我们开发后期的修改之后(包括新功能开发,修Bug等),都可以做到重新测试的工作。这样可以帮助减少我们在发布的时候出现过的甚至之前已经解决的问题再次重现。
这篇文章主要讲对于SpringBoot项目的单元测试,主要侧重讲MockMvc对于我们系统的Controller进行测试。
对数据库的操作这里使用事物实现回滚,即对数据库进行增删改在方法结束后将会还原数据库,便于测试用例的循环使用。添加 @Transactional 注解,就可以自动完成事务回滚,不需要再做事务补偿。
二、MockMvc的使用
-
首先我们先看一个例子
@RunWith(SpringRunner.class) @SpringBootTest(classes = EnterpriseAdminApplication.class) @WebAppConfiguration @Transactional public class CourseControllerTest { @Autowired private WebApplicationContext webApplicationContext; private MockMvc mockMvc; //测试开始之前需要建立测试环境,before方法被@Before修饰。 // 此注解标注的方法在每个方法执行之前都会执行一遍 @Before public void before() throws Exception { //通过MockMvcBuilders工具,使用WebApplicationContext对象作为参数,创建一个MockMvc对象。 mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();