使用SpringJUnit4ClassRunner进行单元测试

xiaoxiao2021-02-27  132

Java代码   import org.junit.Test;  import org.junit.runner.RunWith;  import org.springframework.test.context.ContextConfiguration;  import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  import org.springframework.test.context.transaction.TransactionConfiguration;  import org.springframework.transaction.annotation.Transactional;      @RunWith(SpringJUnit4ClassRunner.class)  @ContextConfiguration(locations ={"classpath:/configuration/spring/beans.xml"})  @Transactional  @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false)  public class TestModule{      @Test      public void testAdd() {          try {          dao.save(module);          }catch(Exception e) {              e.printStackTrace();          }          }  }  

 这里需要对defaultRollback = true说明: true ? 测试数据不会污染数据库 : 会真正添加到数据库当中

当然这里不污染数据库只是在表中看不到数据, 但是如果你设置的主键是自动增长的话, 那么可以很明显得看出,虽然数据回滚了, 但是当你尝试不回滚新增数据到数据库的时候, 会发现ID不是连续的.所以并不是真正意义上的无污染

当然,这种方式也有他的好处,比单纯JUNIT要省去@before ,@after的方法.

实例:

package com.htbb.test; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.mail.MessagingException; import org.apache.log4j.Logger; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration @ContextConfiguration({ "classpath*:/spring.xml" }) public class ServiceTest {     @Resource(name = "userService")     UserService userService;     private static final Logger LOGGER = Logger.getLogger(ServiceTest.class);       @Test     public void test(){                  List<UcUser> list = userService.list();             } }

转载请注明原文地址: https://www.6miu.com/read-14884.html

最新回复(0)