spring+TestNG 单元测试

来源:互联网 发布:mp288清零软件怎么样 编辑:程序博客网 时间:2024/05/16 19:55

在写单元测试的时候,一般是对数据库进行增删改查的操作,这个时候,如果之前删除了某条记录,自然后面的程序就找不到这条记录了,所以可以通过配置spring的事务管理或者测试框架来回滚,减少工作量。使用的数据库是postgreSQL和MySQL。

1、创建测试类
创建一个测试用的类,推荐名称为 “被测试类名称 + Test”。

  测试类应该继承与 AbstractJUnit4SpringContextTests 或 AbstractTransactionalJUnit4SpringContextTests

  对于 AbstractJUnit4springcontextTests 和 AbstractTransactionalJUnit4SpringContextTests 类的选择:

  如果再你的测试类中,需要用到事务管理(比如要在测试结果出来之后回滚测试内容),就可以使用AbstractTransactionalJUnit4SpringTests类。事务管理的使用方法和正常使用Spring事务管理是一样的。再此需要注意的是,如果想要使用声明式事务管理,即使用AbstractTransactionalJUnitSpringContextTests类,请在applicationContext.xml文件中加入transactionManager bean:

@Bean    public DataSourceTransactionManager transactionManager(){        DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(dataSource());        return transactionManager;    }

  如果没有添加上述bean,将会抛出NoSuchBeanDefinitionException,指明 No bean named ‘transactionManager’ is definded
  
 Spring4.2之前的方法

@TransactionConfiguration(transactionManager = "txManager", defaultRollback = true)  

Spring 4.2之后的方法

@ContextConfiguration(locations = {"classpath:spring.xml"})@Rollback//回滚数据库public class BaseRepositoryTest extends AbstractTransactionalTestNGSpringContextTests {
2 0