以前使用springboot测试的时候一般都是在原有代码中加上测试的代码,然后重新访问,偶尔就会导致改完的代码忘了撤销,或者改错的情况,所以看了一下网上的教程,并整理了一下如何进行单元测试,以便后续使用。
1可以在test目录下生成的相关ApplicationTests类中添加以下3个注解
@RunWith(SpringRunner.class) @SpringBootTest @WebAppConfiguration
代码如下图
@RunWith(SpringRunner.class)
@SpringBootTest
//由于是Web项目,Junit需要模拟ServletContext,因此我们需要给我们的测试类加上@WebAppConfiguration。
@WebAppConfiguration
public class DemoApplicationTests {
@Before
public void init() {
System.out.println("开始测试-----------------");
}
@After
public void after() {
System.out.println("测试结束-----------------");
}
}
2 测试类一般都是需要进行回滚操作的,所以在新增事务的注解,如果需要指定单元测试进行提交,只需要将@Rollback的value改为false即可。
@Transactional @Rollback(value = true)
3 生成对应的test文件,为了简化,不用每个类都加上以上的注解,可以选择继承上述的DemoApplicationTests.java,在测试类进行操作即可。
@Transactional
@Rollback(value = false)
public class CustomerControllerTest extends DemoApplicationTests {
@Autowired
private CustomerService customerService;
@Test
public void test(){
Customer customer = new Customer();
customer.setName("aaa");
customer.setPassword("123");
customerService.add(customer);
}
@Test
public void testList(){
System.out.println(customerService.listAll().size());
}
}