问题标签 [spring-test-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.
java - 使用 DBUnit 测试数据库时如何忽略表的现有元素
我正在使用 DBUnit 来测试我的数据库。我的数据库不是空的,所以我想要的是忽略现有元素并只测试我的测试插入的数据。
这是如何运行测试的示例:
1- 表包含 10 个元素
2- DBUnit 从数据集中插入一些数据(3 个元素)
3-我的测试插入数据(1个元素)
4- 我的预期数据集包含 4 个元素,它们是第一个数据集中定义的 3 个元素和测试最近添加的元素
5-所以,当我对实际表和预期表进行断言时,它会显示一个错误,这是正常的,因为我的表已经包含元素。
问题是:有没有什么办法可以在assert 中忽略数据库中存在的元素?我只想测试数据集插入的数据并进行测试。
这是代码:
spring - DBUnit 和 Spring Data JPA 的 TransactionRequiredException
我正在使用 Spring Data JPA 开发一个 Spring Boot 应用程序。
我有一个 JpaRepository 在正常执行中运行良好,但是当我尝试使用 DBUnit 对其进行测试时,出现以下异常:
这是我的 JpaRepository:
这是我的测试课:
constraints - 使用 DBUnit / 约束名称进行约束标识
当某些数据库约束在运行 dbunit 测试期间失败时,会打印出它的名称,但会出现异常,例如
有没有可能找出哪个特定的约束是相应的。受影响表中的哪一列?显示的约束名称似乎是生成的。
我在互联网上找不到任何关于它的信息,所以我唯一要做的就是检查受影响的表,查看它有哪些约束并猜测我的数据集可能违反哪些约束......
oracle - 如何使用 Dbunit FlatXmlDataSet 填充 Oracle TIMESTAMP WITH ZONE 字段
我正在尝试通过填充具有TIMESTAMP(6) WITH TIME ZONE
如下类型列的表来设置数据库单元测试的数据:
但是当我运行测试时,我不断收到以下异常:
我为时间戳字段尝试了不同的格式,包括添加时区后缀 +XX:XX2015-03-01 10.00.00.000000000 +00.00
无济于事。我还尝试使用 VM 参数运行测试,-Duser.timezone=UTC
但这也无济于事。
有谁知道如何做到这一点?
编辑 1
我在控制台中注意到以下警告:
所以看起来 Dbunit 不支持TIMESTAMP WITH TIME ZONE
数据类型并忽略它,因此出现NoSuchColumnException
异常
编辑 2
实际上 dbunit 已经TIMESTAMP
通过类支持数据类型OracleDataTypeFactory
。配置将如下所示:
不幸的是,在这些配置更改之后,数据类型问题仍然存在,因为 dbunit DatabaseConfig.datatypeFactory 属性被 DbUnitTestExecutionListener 重新设置为DefaultDataTypeFactory
不支持 TIMESTAMP 数据类型的默认值
java - org.dbunit.dataset.NoSuchTableException:localized_values
我正在尝试使用spring test dbunit
.
https://springtestdbunit.github.io/spring-test-dbunit/
当我使用 spring 时,4.1.x
我决定使用 version 1.2.1
forspring-test-dbunit
和2.5.2
for core dbunit
。
最初我使用plain dbunit
,效果很好。然后我决定尝试spring-test-dbunit
,我遇到了几个问题。
这是我的测试课
我的数据集文件看起来像这样
数据库连接 bean 看起来像这样
dataSource
豆在哪里
但是当我尝试运行测试时,我得到了这个错误
问题是什么?
另外,当我使用plain时,dbunit
我必须进行设置autoCommit
才能使其正常工作
(虽然我认为这autoCommit
应该是true
默认的)
dbunit - DBUnit 测试用例范围
我正在寻找 DBUnit TestCase 的范围。可以使用 DBUnit 测试 Spring DAO 层方法吗?我的看法是 JUnit 应该用于 Spring DAO 层测试用例。DBUnit 测试用例的范围是验证数据库表结构和主表数据。DBUnit 框架测试用例可以涵盖其他任何内容吗?
java - 为什么我会收到 DbUnit ComparsionFailure 异常?
我坚持对我的 DAO 进行更新测试。更新方法工作得很好,但最后我得到了一个例外:
junit.framework.ComparisonFailure: value (table=theme, row=0, col=Id) 预期:<[1]> 但是是:<[97]>
这是我的测试:
这是数据集。主题数据.xml:
预期主题数据.xml:
junit - DBunit 数据在 Oracle 中不可见
在我的项目中,我们使用 xml 文件将数据插入数据库(oracle)。但是,我没有得到这些数据在 DB 中的插入位置。我在执行查询时看到插入语句。但数据在数据库中不可见。检索时,数据来自数据库。但是这些数据存储在数据库中的位置。它使用任何临时表将数据存储在 DB 或它使用的任何其他机制中。我在执行插入查询语句时调试了代码。插入查询语句执行成功。但是数据在数据库中不可见。
如果有人对此有想法,请向我解释。
java - 数据验证中的 DbUnit 行顺序
我正在尝试在 XML 文件中的表和数据库中的表之间的插入操作中进行 DbUnit 数据验证。我已经按“ID”对两个表进行了排序,然后在比较中忽略了它,因为它的值是自动递增的,我不知道它是什么,但排序不好。这是根据 DbUnit 文档的代码:
当前的 XML:
预期的 XML:
最后一行是插入的行。我没有指定 ID,因为我不知道它是什么。
排序后:
排序实际:
排序预期:
行顺序不正确,因为它被排序为字符串并且“ID”是数字,因此比较失败。有任何想法吗?
spring-boot - DBUnit 错误:NoSuchTableException
我尝试根据此示例(https://github.com/21decemb/spring-boot-dbunit-example)为我的数据库服务编写单元测试。我创建了数据集和测试示例。运行测试后,我收到:org.dbunit.dataset.NoSuchTableException: orders
数据集.xml:
评论了第二个订单行,因为我正在测试两种可能性。我知道这是因为加入。当我只测试“职位”和“客户”(没有连接的简单实体)时,它可以正常工作。
我的“订单”实体:
有没有人知道如何解决它?
提前致谢。