1.之前开发项目是不要求写单测的,最近公司管理严格需要对开发的功能编写单测,所以在此记录下springboot对junit的整合以及使用的方式
2.引入需要用到的依赖jar包,一般创建好springboot项目都会自带test依赖
3.一般我们新建的springboot项目都带有测试包,我们直接使用,在里面编写测试类即可
4.因为项目中可能会存在很多测试类,那么就会存在很多注解重复被添加的冗余,因此我们写一个基类,其他测试类只需要继承基类就行,基类名字就叫做BaseTestClass,如下:
package com.example.mybatisplus;
import org.junit.After;
import org.junit.Before;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.web.WebAppConfiguration;
(SpringRunner.class)
public class BaseTestClass {
public void init(){
System.out.println("before");
}
public void after(){
System.out.println("after");
}
}
5.然后就可以编写测试类了,测试类里面注入service层,然后通过断言进行返回数据的判断,下面就是我测试的一个查询接口的测试类:
package com.example.mybatisplus;
import com.example.mybatisplus.entity.Employee;
import com.example.mybatisplus.service.EmployeeService;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import static org.junit.Assert.assertEquals;
public class OperateDataTest extends BaseTestClass{
private EmployeeService employeeService;
public void testQueryById(){
Employee employee = employeeService.selectById("2");
assertEquals("Jerry",employee.getLastName());
assertEquals("jerry@qq.com",employee.getEmail());
}
}
注意:由于业务逻辑层都是要求写在service层,所以我们这里就注入了service进行测试。
那有同学要问了,我直接测试controller层可以吗?答案肯定是可以的,下面我就演示一下直接注入controller层,其实和service是一样的,如下所示:
package com.example.mybatisplus;
import com.example.mybatisplus.controller.MybatisPlusController;
import com.example.mybatisplus.entity.Employee;
import com.example.mybatisplus.service.EmployeeService;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import static org.junit.Assert.assertEquals;
public class OperateDataTest extends BaseTestClass{
private EmployeeService employeeService;
private MybatisPlusController mybatisPlusController;
public void testQueryById(){
Employee employee = employeeService.selectById("2");
assertEquals("Jerry",employee.getLastName());
assertEquals("jerry@qq.com",employee.getEmail());
}
public void testController(){
List<Employee> employeeList = mybatisPlusController.queryList();
System.out.println("employee="+employeeList.get(0));
}
}