2012-07-18 69 views
1

我尝试为Java Web应用程序的持久层编写单元测试。我使用JUnit来测试服务层,我也想将它用于持久层。Java中是否有框架来建立持久层?

由于应用程序是高度可定制的,因此可以通过配置将持久层更改为使用支持JDBC的数据库(MySQL,Postgres,Oracle)和嵌入式数据库(sqljet)。有没有一个框架,可以帮助我定义一个用于测试和设置数据存储的数据集?我的目标是编写一组测试并将其用于持久层的所有实现。 DbUnit不是一个选项,因为我有非JDBC版本的持久层(sqljet)。

由于提前,

马库斯

回答

3

DBUnit的可以帮助你

DbUnit是针对 数据库驱动的项目JUnit扩展(也有蚂蚁可用),除其他事情,在测试运行之间将数据库 置于已知状态。这是避免当一个测试案例 破坏数据库并导致后续测试失败或 加剧损害时可能发生的无数问题的绝佳方式。

DbUnit能够将数据库数据导出和导入XML数据集,并将数据库数据导入 。从版本2.0开始,在流模式下使用时,DbUnit也可以使用非常大的数据集。 DbUnit还可以帮助您 验证您的数据库数据是否与预期的一组值相匹配。

http://www.dbunit.org/

+0

我发现这个框架了。但我认为,这与JDBC相关。我找到了使用或反复使用java.sql.Connection的方法。对于像sqljet这样的嵌入式数据库,我没有JDBC连接... – Markus 2012-07-18 12:49:13

+0

使用数据库时,您始终有连接。当您使用SQLJet时,您正在使用低级API连接到SQLLite,并且该数据库不是SQLJet,而是SQLLite。如果您查找SQLLite的JDBC连接器,我相信您可以找到一个 – Edmondo1984 2012-07-18 12:50:10