数据库是程序中几乎必不可少的一部分,那么如何对于数据库进行测试呢?
如果多个测试同时使用同一个数据库,我们怎么能够保证不同测试之间的测试数据不会相互影响呢?
这里我们可以使用事务(transaction)进行数据库的测试。
一、数据库的基本测试
直接上代码:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath:application-test.xml"
})
@Transactional
@TransactionConfiguration(defaultRollback = true)
public class PeopleIntegrationTest {
@Autowired
private PeopleDao peopleDao;
@Before
public void setUp() throws Exception {
peopleDao.clear();
}
@Test
public void should_success_add_a_people() {
peopleDao.insertPeople(new People("firstName", "lastName"));
assertThat(peopleDao.getPeopleCount(), is(1));