DBUnit是不是不能脱离数据库?

问题描述

两个问题: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

DBUnit是不是不能脱离数据库?的相关文章

Unitils集成DBUnit的问题-解决方案

Unitils在集成DBunit时,如果数据库是mysql时,就会出现一些如下: org.unitils.core.UnitilsException: Error inserting test data from DbUnit dataset for method...... org.dbunit.dataset.NoSuchColumnException...... 出现如上两个报错的原因是:unitils默认使用的是"DefaultMetadataHandler.java"这个类去

浅谈实际开发中数据源在JDBC中的应用

数据|数据源 数据源在JDBC中的应用众所周知,JDBC(Java数据库连接)是Java2企业版的重要组成部分.它是基于SQL层的API.通过把SQL语句嵌入JDBC接口的方法中,用户可以通过Java程序执行几乎所有的数据库操作. JDBC只提供了接口,具体的类的实现要求数据库的设计者完成.通过生成这些接口的实例,即使对于不同的数据库,Java程序也可以正确地执行SQL调用.所以对于程序员来说,不必把注意力放在如何向数据库发送SQL指令,因为程序员需要了解和用到的只是JDBC的接口,只有在极少数

声明游标

每一个游标必须有四个组成部分这四个关键部分必须符合下面的顺序:1.DECLARE 游标2.OPEN 游标3.从一个游标中FETCH 信息4.CLOSE 或DEALLOCATE 游标通常我们使用DECLARE 来声明一个游标声明一个游标主要包括以下主要内容: 游标名字 数据来源(表和列) 选取条件 属性(仅读或可修改)其语法格式如下:DECLARE cursor_name [INSENSITIVE] [SCROLL] CURSORFOR select_statement[FOR {READ ONL

Java数据对象(JDO)的前世今生

对象|数据 1 Java与数据库应用,JDBC Java发明以来,在短短的几年之间,迅速占领了从桌面应用(J2SE)到服务器(J2EE),再到小型设备嵌入式系统(J2ME)的应用开发市场,其语言吸取了SmallTalk的一切皆对象的理念,摆脱了C++的历史累赘,简洁.自由的风格赢得了很多开发者的喜爱.从JDK1.1开始,Java成为实用的语言,而不是被人观望的新品秀:再经过JDK1.2的大量增强(尤其是Collection Framework),JDK1.3的虚拟机效率提升(HotSpot),J

SQL-SERVER 声明游标

server|游标 SQL-SERVER 声明游标  每一个游标必须有四个组成部分这四个关键部分必须符合下面的顺序:1.DECLARE 游标2.OPEN 游标3.从一个游标中FETCH 信息4.CLOSE 或DEALLOCATE 游标通常我们使用DECLARE 来声明一个游标声明一个游标主要包括以下主要内容: 游标名字 数据来源(表和列) 选取条件 属性(仅读或可修改)其语法格式如下:DECLARE cursor_name [INSENSITIVE] [SCROLL] CURSORFOR sel

浅析数据源在JDBC中的应用

简介 众所周知,JDBC(Java数据库连接)是Java 2企业版的重要组成部分.它是基于SQL层的API.通过把SQL语句嵌入JDBC接口的方法中,用户可以通过Java程序执行几乎所有的数据库操作.JDBC只提供了接口,具体的类的实现要求数据库的设计者完成.通过生成这些接口的实例,即使对于不同的数据库,Java程序也可以正确地执行SQL调用.所以对于程序员来说,不必把注意力放在如何向数据库发送SQL指令,因为程序员需要了解和用到的只是JDBC的接口,只有在极少数情况下会用到面向特定数据库的类,

使用JdbcProxy测试Java应用程序

在我们测试 Java 应用程序时,往往需要连接数据库,并从数据库中获得准确 的测试数据用以测试应用程序是否正确.然而准备测试数据的工作较为复杂,一 旦数据库中的数据发生变化,要想恢复到之前的版本也很费时.对于那些没有条 件连接数据库的测试者而言,测试工作是不能进行下去的.因此,如果可以为某 个待测应用准备一套完备的测试数据,让程序开发.测试人员在不依赖于具体数 据库的情况下对应用进行测试,这无疑是十分方便的. 简介 JdbcProxy 是 SourceForge 上一个开源的 Java 项目,用

PHP 资源备忘

Awesome PHP 一个PHP资源列表,内容包括:库.框架.模板.安全.代码分析.日志.第三方库.配置工具.Web 工具.书籍.电子书.经典博文等等 贡献 详细内容请查看贡献 和 代码管理. 目录 Awesome PHP 依赖管理 Dependency Management 其他的依赖管理 Dependency Management Extras 框架 Frameworks 其他框架 Framework Extras 框架组件 Components 微型框架 Micro Frameworks

微博“异地多活”部署经验谈

微博"异地多活"部署经验谈 异地多活的好处阿里巴巴的同学已经充分阐述,微博的初始出发点包括异地灾备.提升南方电信用户访问速度.提升海外用户访问速度.降低部署成本(北京机房机架费太贵了)等.通过实践,我们发现优势还包括异地容灾.动态加速.流量均衡.在线压测等,而挑战包括增加研发复杂度.增加存储成本等. (题图来自:jimijones.com) 微博外部历程 先说说微博外部的历程,整个过程可谓是一波多折.微博的主要机房都集中在北京,只有很小一部分业务在广州部署,2010年10月,因微博高速