01 | @RunWith (SpringJUnit4ClassRunner. class ) |
02 | @ContextConfiguration ( "/beans.xml" ) |
04 | @TransactionConfiguration |
05 | public class EmployeeDaoImplTest { |
08 | private EmployeeDao employeeDao; |
11 | public void testInsert() { |
12 | Employee employee = new Employee(); |
14 | employee.setName( "店小四" ); |
15 | employee.setMail( "dianxiaosi@yeah.net" ); |
16 | boolean successful = employeeDao.insert(employee); |
17 | assertThat(successful, is( true )); |
@TransactionConfiguration 是 @TransactionConfiguration(defaultRollback = true) 的简写。@TransactionConfiguration 能够管理类范围内的事务, 与 @Rollback 一样, 它也需要 @Transactional 标注的支持, 否则事务不受 @TransactionConfiguration 的控制。
@TransactionConfiguration 可以与 @Rollback 注解共同工作, 如上面的测试用例, 事务虽然是受 @TransactionConfiguration 控制回滚不提交, 但如果你想提交某一个方法的事务, 你可以通过 @Rollback(false) 来控制提交事务。
执行测试, 数据库不会插入数据, 如果将 @TransactionConfiguration 改为 @TransactionConfiguration(defaultRollback = false), 则数据库插入一条记录。