锁定老帖子 主题:单元测试交流
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-06-06
现在我们用的是将对数据库的操作抽取成一个接口,然后虚拟这个接口来实现,但现在灵活性感觉不太好,不知道各位有没有好的办法 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-06-06
我一般是使用MOCK对象做这类的测试.
你可以去看看 EasyMock 和 JMock,都是开源的 |
|
返回顶楼 | |
发表时间:2005-06-06
还有一个简单方法.
简历一个空白的数据库,只有结构没有数据. 向数据库插入数据->run test->删除数据. |
|
返回顶楼 | |
发表时间:2005-06-06
如果你用Hibernate的话,这个问题就很好解决了。设置SchemeAuto为create-drop,使用嵌入式数据库HSQLDB来单元测试。在你的测试执行的时候,Hibernate自动创建数据库表,当你的测试执行完毕以后,Hibernate自动drop表,可以保证你无论执行n次测试,测试结果都是可重复的。
|
|
返回顶楼 | |
发表时间:2005-06-06
aihua 写道 还有一个简单方法.
建立一个空白的数据库,只有结构没有数据. 向数据库插入数据->run test->删除数据. 每个开发人员一个空数据库。 插入和删除数据可以用DBUnit来实现。 |
|
返回顶楼 | |
发表时间:2005-06-06
我觉得还是自己mock一个DAO比较好,这样隔离了数据库这一层,只对业务逻揖进行测试就好了.
|
|
返回顶楼 | |
发表时间:2005-06-06
引用 现在我们用的是将对数据库的操作抽取成一个接口,然后虚拟这个接口来实现,但现在灵活性感觉不太好
你是想问这种接口分离灵活性不太好,还是想问什么? |
|
返回顶楼 | |
发表时间:2005-06-07
DBUnit 也是挺好用的一个工具
|
|
返回顶楼 | |
发表时间:2005-06-07
要看你的需求改变的有多麻烦。我以前大概写了一个有dbunit基本功能的接口。后来看到dbunit后想全部移到上面去,但是一比较要移植的精力还是放弃了。
也许够用就好吧。 |
|
返回顶楼 | |
发表时间:2005-06-07
gf2008 写道 我们在单元测试时,经常会遇到对同数据库打交道的单元进行测试,但在数据库发生变化时我的单元测试也要发生变化。
现在我们用的是将对数据库的操作抽取成一个接口,然后虚拟这个接口来实现,但现在灵活性感觉不太好,不知道各位有没有好的办法 这就是要做到测试隔离啊! 想办法隔离吧,包括 每次测试之前 插入,测试完成删除。 或者mock吧。 |
|
返回顶楼 | |