问题标签 [dbunit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5079 浏览

java - 将数据集加载到数据库时来自 DBUnit 的 NoPrimaryKeyException

当我尝试运行使用 DBUnit 的单元测试之一时,我得到了 NoPrimaryKeyException。数据表是使用 Hibernate 创建的,它是映射多对多关系的两个类之间的连接表。定义关系的注解如下:

我用来定义数据集的 XML 文件中的其他条目似乎工作正常,但连接表却不行。我得到以下异常:

有问题的数据集条目如下所示:

并与将两个字段都作为主键的数据库匹配(如果有帮助,数据库是 MS SQL Server)在以下 xml 中定义的两个表中有相应的条目正在联接:

我必须在休眠注释中定义主键吗?如果是这样,我该怎么做?我是否必须更改定义数据集的方式以暗示两列是联合主键?

就此而言,我对hibernate或DBUnit不是很精通,而且我无能为力,所以任何帮助都将不胜感激。

0 投票
1 回答
3317 浏览

java - DBUnit 自动数据集生成

我在 StackOverflow 上看到了一些关于在 DbUnit 中创建数据集的问题,但所有这些问题都是关于从现有表中导出数据的。

我的问题是,DBUnit 可以根据我的数据库模式创建一些虚拟数据集吗?我不在乎字符串是否会像“ZDSFFDSDGF”,而 BLOBS 是否只是垃圾。我只需要一些测试数据,我更愿意花时间开发而不是填充我的表。

任何解决方案,指针?这样做的Netbeans插件会很棒,但我想这只是一厢情愿......

0 投票
3 回答
7457 浏览

java - DBunit 生成 java.lang.ClassCastException:尝试加载 CLOB 字段时无法将 java.lang.String 强制转换为 oracle.sql.CLOB

我在 Oracle 11GR2 上使用最新版本的 DBUnit (2.4.7)。我正在使用 Java 6 (1.6.0_15) 和最新版本的 Oracle 客户端 jar (jdbc6.jar)

我无法成功地将 CLOB Oracle 字段引用的任何数据从 XML 文件加载到数据库中。

我使用了各种版本的组合:

  • Oracle JDBC 库 ojdbc5.jar、ojdbc6.jar、oracle 10 jars
  • Hibernate 库等...我认为问题出在 DBUnit 上。请参阅下面的堆栈跟踪。

    /li>

我正在运行 Java 6、1.6.0_15。

我试过了:

1) FlatXmlDataSet 使用这个定义

2) XmlDataSet 使用这个定义

任何帮助将非常感激!

堆栈跟踪如下:

0 投票
1 回答
323 浏览

unit-testing - dbunit,数据库文件的相同XML表示可以用于不同的数据库

我正在尝试对我的项目的数据库访问层进行单元测试。但问题是我需要使用 apache derby 数据库测试这一层,并且在生产测试期间我需要在 oracle 上进行。

那么我可以使用数据库的相同 xml 表示来使用 dbunit 吗?

0 投票
4 回答
3434 浏览

java - 集成测试 - Hibernate & DbUnit

我正在用 JUnit 编写一些集成测试。这里发生的情况是,当我连续(而不是单独)运行所有测试时,数据库中持久保存的数据总是会发生变化,并且测试在执行过程中会发现意外数据(由先前的测试插入)。

我正在考虑使用 DbUnit,但我想知道它是否会在每次执行之间重置自动增量索引(因为测试还会检查持久实体的 ID)。

谢谢

M。

0 投票
1 回答
906 浏览

xml - 如何插入换行符dbunit数据集

如何在 dbunit 数据集中插入换行符?像这样:

如果我以这种方式执行此操作,则 db 中的字段故事仅显示为空格,但我需要换行符。

0 投票
4 回答
12554 浏览

java - DBUnit 数据集中相对于当前的日期

我想知道是否有任何方法可以将例如明天指定为 DBUnit XML 数据集中的日期。有时代码逻辑对于未来的日期和过去的日期是不同的,我想测试这两种情况。当然,我可以指定诸如 2239 年 11 月 5 日之类的内容,并确保该测试将一直有效到该日期,但是否有更优雅的方式。

我在 Java 开发过程中还没有遇到过这种情况,但是有一次我有过代码逻辑在日期前一天、日期前两天和日期前两天以上不同的经验。在这种情况下,编写数据库驱动测试的唯一可能解决方案是在数据导入期间插入相对日期。

DBUnit 是否为此提供了任何设施?

0 投票
3 回答
2904 浏览

hibernate - 使用 DbUnit 将 BigDecimal 数据放入 HSQLDB 测试数据库

我在后端使用 Hibernate JPA。我正在使用 JUnit 和 DBUnit 编写单元测试,将一组数据插入到内存 HSQL 数据库中。

我的数据集包含:

它映射到一个 OrderLine Java 对象,其中 discount_price 列定义为:

但是,当我运行我的测试用例并断言返回的折扣价格等于 0.3 时,断言失败并说存储的值为 0。如果我将数据集中的 discount_price 更改为 0.9,它会四舍五入为 1。

我已经检查以确保 HSQLDB 没有进行四舍五入,这绝对不是因为我可以使用 Java 代码插入一个订单行对象,其值类似于 5.3,它工作正常。

对我来说,似乎 DBUtils 出于某种原因将我定义的数字四舍五入。有没有办法可以强制这种情况不发生?谁能解释它为什么会这样做?

谢谢!

0 投票
1 回答
385 浏览

java - 使用spring、hibernate和scala,有没有比dbunit更好的加载测试数据的方法?

以下是一些我非常不喜欢 dbunit 的地方:

1) 您无法指定插入的确切顺序,因为 dbunit 喜欢按表名对插入进行分组,而不是按您在 XML 文件中定义的顺序。当您的记录依赖于其他表中的其他记录时,这是一个问题,因此您必须在测试期间禁用外键约束......这实际上很糟糕,因为这些外键约束将在生产中被触发,而您的测试不会知道他们!

2) 他们似乎一心要强迫你使用 xml 命名空间来定义你的 xml ......老实说,我懒得这样做。我喜欢没有任何命名空间的 data.xml。有用。但他们如此坚决地反对它。

3)在每个测试的基础上创建不同的 xml 文件是很困难的,所以它实际上鼓励为你的整个应用程序创建数据。不幸的是,一旦数据变大并且事情变得复杂,这个过程也有点臃肿。必须有一种更好的方法将您的测试数据拆分成块,而不必在所有测试中复制/粘贴大量测试数据。

4) 在一个大的 xml 文件中跟踪 id 引用是不可能的。如果您有 130 个域类,那只会令人眼花缭乱。该模型根本无法扩展。

在 Spring/Hibernate 空间中是否有一些不那么臃肿和更好的东西?db unit 已经不再受欢迎,我真的在寻找更好的东西。

0 投票
1 回答
2440 浏览

database - Many small dbunit data sets or one large one?

Spreading test data across multiple small data sets seems to me to create a maintenance headache whenever the schema is tweaked. Anybody see a problem with create a single larger test data set? By "larger" I'm still only talk about a couple hundred records in total.