我正在使用Spring和Junit测试我的DAO层。这是我的测试:
@ContextConfiguration(locations = "classpath:application-context-test.xml")
@RunWith(SpringJUnit4ClassRunner.class)
public class TestEmployeeDAO {
@Autowired
private EmployeeDAO employeeDAO;
@Test
@Transactional
public void testInsertEmployee(){
Employee employee = new Employee("Abdel Karim");
employeeDAO.insert(employee);
.
.
.
}
}
}
但是,当我执行测试并检查我的数据库时,我发现没有插入行,也没有抛出异常。我不明白为什么,Spring(SpringJUnit4ClassRunner)的默认行为是回滚事务吗?
提前致谢。
最佳答案
是的,默认情况下回滚为true。要关闭它,请使用:
@Test
@Transactional
@Rollback(false)
public void testInsertEmployee(){
Employee employee = new Employee("Abdel Karim");
employeeDAO.insert(employee);
}