锁定老帖子 主题:倒底该怎么写DAO的单元测试?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-17
public void testAddUserInfo() throws Exception{ userInfo = new UserInfoDTO(); userInfo.setUserId("001"); userInfo.setUserName("张三"); userInfoDao.addUserInfo(userInfo); this.assertNotNull(userInfoDao.getUserInfo(userInfo.getUserId())); this.assertEquals(userInfo.getUserId(), userInfoDao.getUserInfo(userInfo.getUserId()).getUserId()); userInfoDao.removeUser(userInfo.getUserId()); } 为了避免脏数据!!!所以要把新插入的数据用removeUser删除掉!!! 当然,如果使用Spring的那个带有事务的基类。在TearDown时,会回滚所有事务。removeUser这个方法可以无需要。不会产生因单元测试的脏数据 困惑多一: 新增一个用户后,需要调用一个方法getUserInfo来判断数据是否已经插入!!! 根据单元测试的原则!!! 1.测试方法不应该有先后顺序!! 2.测试方法不应该依赖于另一个方法! 你上面的例子,我们需要测试的仅仅是addUserInfo这个方法!! 假设addUserInfo方法实际上是没有任何问题的,如果getUserInfo方法不正常。的确影响了这个测试结果!!! 大家平时是怎么写dao测试方法的? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-05-17
把事务层的东西写在dao中合适么?
脏数据这东西应该不是dao应该关心的事吧。 |
|
返回顶楼 | |
发表时间:2007-05-17
在setup里面来addUserInfo,准备一条数据
BTW:spring提供一个测试基类,可以自动回滚,防止测试数据污染数据库 |
|
返回顶楼 | |
发表时间:2007-05-17
daquan198163 写道 在setup里面来addUserInfo,准备一条数据
BTW:spring提供一个测试基类,可以自动回滚,防止测试数据污染数据库 ROR中有不同的数据库,比如测试时用测试的数据库。 我们现在的测试也就是这样做的。 |
|
返回顶楼 | |
发表时间:2007-05-17
抛出异常的爱 写道 把事务层的东西写在dao中合适么?
脏数据这东西应该不是dao应该关心的事吧。 我说的意思是,测试时写到数据库的数据应该在测试完后删除掉。 |
|
返回顶楼 | |
发表时间:2007-05-17
daquan198163 写道 在setup里面来addUserInfo,准备一条数据
BTW:spring提供一个测试基类,可以自动回滚,防止测试数据污染数据库 我知道spring有这个基类! 我是说,各个测试方法之间有依赖 |
|
返回顶楼 | |
发表时间:2007-05-17
hgq0011 写道 daquan198163 写道 在setup里面来addUserInfo,准备一条数据
BTW:spring提供一个测试基类,可以自动回滚,防止测试数据污染数据库 ROR中有不同的数据库,比如测试时用测试的数据库。 我们现在的测试也就是这样做的。 这个仍然不是最好的解决方法!!! 大家能不能把自己的测试代码都贴出来看看? |
|
返回顶楼 | |
发表时间:2007-05-17
哦,这个意思阿
可以用jdbcTemplate来准备数据和验证数据库状态 |
|
返回顶楼 | |
发表时间:2007-05-17
还是没有人响应啊,呵呵
|
|
返回顶楼 | |
发表时间:2007-05-17
java 代码
准备数据: java 代码
java 代码
|
|
返回顶楼 | |