问题标签 [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.
hibernate - 在 HSQLDB 上使用 Spring DBUnit 进行休眠和 Spring 数据 - 由于外键约束而无法删除
我正在使用 Hibernate 和 Spring Data 来建模一个非常简单的域:
和
然后,我在数据服务中有一个“updateUser”方法,该方法按其命名。这个想法是将团队添加到用户,将使用此方法并且级联将导致团队被持久化在数据库中。
然后,我使用 HSQLDB 数据库和 Spring DBUnit 对该方法进行单元测试,以设置初始数据库内容和预期的数据库内容:
初始数据库内容配置
预期的数据库内容配置
然后我有两个测试:一个测试更新成功;一种测试尚未在系统中的用户无法更新的方法。
成功测试
“用户不存在”测试
“成功”测试工作正常。但是,“失败案例”测试错误并出现以下错误:
似乎暗示它不能拆除在“成功”测试中添加的测试数据(我已经在成功测试中添加了@Ignore 注释并且失败测试通过)。我的问题是为什么?我在 @OneToMany 关系上的级联设置为 ALL,因此应删除作为用户-团队关系的一部分保存的所有实体。
有没有人有任何想法?
spring - Spring / DbUnit 在一次测试后关闭连接
因此,我们需要使用 Oracle 数据库为 Java 配置的 Spring Application (3.2.3)编写集成测试。Spring-test-DbUnit填充了一个单独的模式,第一个测试运行没有任何问题。以下所有其他测试,无论它们是否属于同一类,都由于连接关闭而失败:
这是我们的数据源:
这是一个示例集成测试类:
这可能是 Spring 的数据库连接行为在提交/回滚事务后关闭连接的问题吗?如果是,我该如何解决这个问题?我最后一次尝试是在类/方法基础上创建事务,但没有成功。
先感谢您。
java - 使用 Spring 测试 DBUnit @DatabaseSetup 注解时是否需要 JPA 注解?
我正在玩 Spring 测试 dbunit 库,我有一个关于数据集的问题。我有一个POJO
代表我想在我的测试中保存到内存数据库中的实体。这POJO
不是由任何 JPA 注释注释的@Entity
,@Table
或者@Column
,是否可以在带有注释的 XML 数据集文件中使用此类@DatabaseSetup
?
代码示例:XML 数据集文件:
和人 POJO 类:
现在我收到以下错误:
org.dbunit.dataset.NoSuchTableException:人
我有另一个带有 JPA 注释的 POJO 类,它通过@DatabaseSetup
注释处理而没有任何错误。我正在尝试在单个测试中使用两个 POJO。Spring 测试 DBUnit 库是否需要 JPA 注释才能在测试之前设置我的数据库?
spring - 带有手动事务管理的 Spring 集成测试
我已经阅读了很多关于使用 Spring 进行集成测试的帖子和主题,但没有什么是令人满意或有帮助的。
我们使用带有 Hibernate、Spring Data 和 Oracle 数据库的 Spring 3.2.3。对于测试,我们还使用 DbUnit 和 Spring-test-dbunit。在生产代码中,事务由控制器启动,服务本身对事务一无所知。
所以,这是我的测试:
我发现,如果我用@Transactional(propagation=Propagation.REQUIRES_NEW)
测试注释 NewsService 工作正常,但它与生产模式不同。@Transactional(propagation=Propagation.REQUIRED)
是不够的,因为 DbUnit-Spring-test 自己打开一个事务,而后者断言失败,因为事务尚未提交。如何在执行最后一个断言之前提交事务?
spring - 父类中的 DBUnit NoSuchColumnException
所以我收到了这个错误:
在 Spring JUnit 测试的上下文中尝试使用 DbUnit 填充 H2 DB 时。H2 DB 的 DDL 是从 JPA 注释类创建的。但是,该列确实存在,它位于由核心类扩展的抽象类中。
让我解释。核心 JPA 类如下所示:
父类如下所示:
我正在启动这样的测试:
我的 Toyota.xml 数据文件如下所示:
有什么想法吗?
spring - 在 Spring 中配置特定的内存数据库以用于测试目的
如何配置我的 Spring Boot 应用程序,以便在运行单元测试时它将使用内存数据库,例如 H2/HSQL,但是当我运行 Spring Boot 应用程序时,它将使用生产数据库 [Postgre/MySQL]?
spring - spring+hibernate 测试后清除数据库
我正在尝试测试将实体类添加到数据库中。但目前我只能做一次(((第二次启动测试,它失败了(((另外我注意到测试完成后数据没有被清除(((所以下一个测试只是崩溃,因为之前的数据仍然存在。代码和消息跟踪如下:
例外:
我尝试使用所有建议的 inet 解决方案(@DirtiesContext、空数据集文件等)清理数据库 - 它们在这里不起作用(((所以我的任务是每次启动它时都让这个测试工作。有什么想法吗?
java - DBUnit bytea 插入
我正在使用 Spring Oauth,并且正在尝试将测试数据插入 oauth_client_token 表(客户端 Spring Oauth 2)。当我查看 Spring Oauth's 的字节码时JdbcClientTokenService.saveAccessToken
,我看到了这个:
我关心的new SqlLobValue(SerializationUtils.serialize(accessToken))
是生成对象字节的这一部分。我想要一种方法让 DBUnit 在集成测试期间插入所有这些数据。我之前做的是生成一些随机字符串的base64字节字符串,然后让DBUnit插入它。但是,当JdbcClientTokenService.getAccessToken
调用对字节调用 SerializationUtils.deserialize 时,我得到不正确的标头异常。我相信会发生这种情况,因为 base64 生成的输出与 SerializationUtils.serialize 不同。让我知道是否有办法使用 DBUnit 插入正确的数据。
谢谢
java - Spring测试+DBUnit无法加载DataSet
我正在尝试在我的 Spring Boot 应用程序中编写集成测试。我在正确设置设置时遇到问题。抛出以下异常:
我已经尝试过的事情:
- 更改 sampleData.xml 文件的名称。
- 使用 value="" 表示法。
- 使用类路径:在文件名之前。
- 在文件名前使用附加的“/”。
sampleData.xml 与我的测试类位于同一目录中。我想我错过了一些愚蠢的东西。
样本数据.xml:
BenutzerVerwaltungsIntegrationsTest:
示例应用上下文:
java - 使用 Spring 编写数据库单元测试:java.lang.IllegalStateException: Failed to load ApplicationContext
我一直在尝试让 Spring DBUnit 测试来测试我的 dao 功能。然而,经过这么多尝试,现在我被这个奇怪的说法卡住了,无法加载应用程序上下文:
我要测试的道:
我正在使用的数据集文件:dataset.xml
测试的应用程序上下文:applicationContext-test.xml
实际测试类:
但是,当我运行它时,我得到这个奇怪的异常,说无法加载应用程序上下文。