问题描述
两个问题:1.DBUnit在使用时,能完全抛开数据库吗?2.对DAO层的测试能脱离数据库吗?有什么方法或柜架?
解决方案
解决方案二:
只要是面向接口编程,就可以脱离具体的类。jdbc也是接口,但你想自己实现一个jdbc吗?数据库这一层测试,我看还是免了吧,最好把业务逻辑层->DAO层做抽象就行了。也就是另外写一个DAO实现业务需要的接口,然后DAO里不用数据库就行了。
解决方案三:
上头希望对dao层进行测试,我粗略地看了一下DBUNIT,发现它需要连接数据库,我希望找一个能够完全脱离数据库的测试方法,不知有没有?
解决方案四:
你测试逻辑方法不用连接数据库就不用直接使用DAO测试了。你何必鸡蛋碰石头呢!
解决方案五:
还是加个事务,让测试数据操作之后回滚不改变数据库就好了。
解决方案六:
不自动提交更新con.setAutoCommit(false);
解决方案七:
引用4楼zk_2000的回复:
还是加个事务,让测试数据操作之后回滚不改变数据库就好了。
可行
解决方案八:
dbunit是需要数据库的,但是不需要数据。以前我们的项目,是做成xml,运行前,把输入数据和预想数据都做成xml文件,运行测试的时候,dbunit把输入数据灌到数据库,然后运行程序,得到输出的数据,然后在和预想的输出数据进行对比。运行完了,dbunit就把数据库rollback了。因为是封装好了的环境,我也没拿到代码,只是有个大致的逻辑是这样。lz参考一下吧goodluck
时间: 2024-08-29 18:26:08