单元测试需要构造数据 , 而且会考虑到事务的回滚等等问题, 测试代码的构建如下:
路径问题:
1 - 在 SRC 目录下:
@ContextConfiguration(locations={"classpath:spring/application*.xml"})
2 - 有时,我们的application配置文件放在 WEB-INF 目录下, 那么配置:
@ContextConfiguration(locations={"file:WebRoot/WEB-INF/application*.xml"})
@RunWith(org.springframework.test.context.junit4.SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath*:spring/*.xml"})
@TransactionConfiguration(defaultRollback = true)
@Transactional
public class SearchImplTest {
@Resource
private SearchBusiness searchBusiness;
@Test
public void testSearch(){
SearchDto searchDto = new SearchDto();
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, -100);
searchDto.setBeginDate(c.getTime());
c.add(Calendar.DATE, 300);
searchDto.setEndDate(c.getTime());
searchDto.setCityCode("001001001001");
SearchResponseDto responseDto = searchBusiness.search(searchDto);
// JsonShowUtils.show(responseDto.getHotelList());
JsonShowUtils.show(responseDto, "responseDto");
}
这样, 即使不开服务器, 也能跑单元测试 .
而且,不必担心据库的修改, 因为加了事务的自动回滚 ..