我正在使用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);
}

08-28 19:44