在完成DAO层的功能设计时,一个比较好的习惯是先进行junit测试,测试dao接口的方法能否正常运行,接着再去完成业务功能的设计和组装。下面是使用junit的一些简单说明。
首先,默认已经用maven导入了junit相关的依赖,以及junit和spring集成的依赖。
基本使用套路:
1. 列表内容
2. 编写一个新的测试类文件
3. 在编写的测试方法中添加注解 @Test
4. 在大纲(Outline)视图中右键点击要测试的方法,运行配置(Run as),对方法进行运行
5. 如果想对类中所有的方法进行测试,可以点击类进行测试
我自己写的一个测试类代码如下:
/**
* 配置spring和junit整合,junit启动时加载springIOC容器 spring-test,junit
*/
@RunWith(SpringJUnit4ClassRunner.class)
// 告诉junit spring的配置文件
@ContextConfiguration( { "classpath:spring/spring-dao.xml" })
public class SeckillDaoTest {
// 注入Dao实现类依赖(@Resource表示注入依赖)
@Resource
private SeckillDao seckillDao;
@Test
public void testQueryById() throws Exception {
long id = 1000;
Seckill seckill = seckillDao.queryById(id);
System.out.println(seckill.getName());
System.out.println(seckill);
}
@Test
public void testQueryAll() throws Exception {
// 注意接口中要用mybatis注解详细说明参数,否则java编译后变成arg0,arg1识别不出
List<Seckill> seckills = seckillDao.queryAll(0, 100);
for (Seckill seckill : seckills) {
System.out.println(seckill);
}
}
@Test
public void testReduceNumber() throws Exception {
Date killTime = new Date();
// 减库存其实是一条update语句,返回值只能是 1或0
int updateCount = seckillDao.reduceNumber(1000L, killTime);
//因为end_time已经过去了,所以现在测试返回都是0
System.out.println("更新了多少条记录:"+updateCount);
}
}
因为和spring集成,所以使用到了@RunWith 和 @ContextConfiguration 注解。