当前位置:  开发笔记 > 编程语言 > 正文

如何在java中对jdbc代码进行单元测试?

如何解决《如何在java中对jdbc代码进行单元测试?》经验,为你挑选了4个好方法。

我想为一些连接到数据库的代码编写一些单元测试,运行一个或多个查询,然后处理结果.(没有实际使用数据库)

这里的另一个开发人员编写了我们自己的DataSource,Connection,Statement,PreparedStatement和ResultSet实现,它们将根据xml配置文件返回相应的对象.(我们可以使用伪数据源,只针对它返回的结果集运行测试).

我们在这里重新发明轮子吗?这样的单元测试是否已经存在?是否有其他/更好的方法来测试jdbc代码?



1> Tatu Lahtela..:

你有几个选择:

用Mock库模拟数据库,例如JMock.这样做的巨大缺点是您的查询和数据很可能根本不会被测试.

使用轻量级数据库进行测试,例如HSQLDB.如果您的查询很简单,这可能是最简单的方法.

为测试专用数据库.DBUnit是一个不错的选择,或者如果你使用的是Maven,你也可以使用sql-maven-plugin来正确设置和拆除数据库(注意测试之间的依赖关系).我建议使用此选项,因为它将使您最有信心查询与数据库供应商正常工作.

有时,使这些测试可配置是必要且有用的,这样只有在数据库可用时才执行这些测试.这可以通过例如构建属性来完成.



2> WMR..:

您可以将DBUnit与HSQLDB一起使用,HSQLDB可以从CSV文件中读取其初始数据.


你能提供任何例子吗?我正在寻找示例,但找不到任何容易遵循的示例..我正在使用maven.

3> Jim Hurne..:

我喜欢使用以下组合:

DBUnit的

HSQLDB

Unitils(特别是数据库测试和维护模块)

只需DBUnit和HSQLDB就可以获得相当远的成就.Unitils提供管理和重置数据库状态的最后一英里代码.它还提供了一种管理数据库模式更改的好方法,并且可以轻松使用特定的RBDMS(Oracle,DB2,SQL Server等).最后,Unitils围绕DBUnit提供了一些不错的包装器,它使API现代化并使DBUnit更加愉快.

如果你尚未检查出Unitils,你肯定应该.Unitils经常被忽视和低估.



4> Sunny Mileno..:

使用任何Mock框架来完成这样的任务.(JMock的,等等).

一些例子

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有