论坛首页 综合技术论坛

单元测试交流

浏览 18822 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-03-19  
run_xiao 写道
引用

比较极端的做法是把数据库 DAO 层抽象成接口,然后做一个模拟实现。不过这样划不划得来,要看项目具体情况了。我个人做法通常是:在 setup() 中先 insert 一堆数据,然后在 tearDown() 中 delete 掉。这样就能保证单元测试不被影响。

setup()里起一个Transation
tearDown()里rollback这样更爽了

补充一下spring 测试套件里的AbstractTransactionalDataSourceSpringContextTests就是干这个滴
http://www.jactiongroup.net/reference2/html/testing.html 8.3.3
0 请登录后投票
   发表时间:2007-04-05  
AbstractTransactionalDataSourceSpringContextTests把setUp()和tearDown()搞成final的了,这不有病么,都没办法做统一的初始化了
0 请登录后投票
   发表时间:2007-04-09  
littcai 写道
AbstractTransactionalDataSourceSpringContextTests把setUp()和tearDown()搞成final的了,这不有病么,都没办法做统一的初始化了

好好看看源代码,不要一棍子打死,原因在于需要帮定一些初始化工作, 然后扩展了onSetup。
0 请登录后投票
   发表时间:2007-04-16  
gf2008 写道
我们在单元测试时,经常会遇到对同数据库打交道的单元进行测试,但在数据库发生变化时我的单元测试也要发生变化。
现在我们用的是将对数据库的操作抽取成一个接口,然后虚拟这个接口来实现,但现在灵活性感觉不太好,不知道各位有没有好的办法


我们公司的作法是,每台dev machine 都有自己的DB instance, 自己的DB instance的数据用DBUnit的格式放在xml file里并且checkin 到version control.  程序员用的data是live data的一个snapshot, 我们只有在加入新的功能的时候才会改data.

DAO的测试会自己load设定好的data.

functional test 会load test database.

0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics