java - 使用 IntelliJ 对 hibernate 进行单元测试,如何设置 session 上下文?使用种子设置测试 mysql 数据库

标签 java hibernate junit intellij-idea

我有一个使用 IntelliJ 的 Maven 项目,而且我对两者都很陌生。

我现在有一个使用 hibernate 运行的 spring mvc 应用程序(我对此感到非常兴奋!)。

现在,我来自 .net,因此对于 .net,我必须编写额外的代码来在我的单元测试项目中设置 sessionfactory 等,因为它不像 Web 应用程序,在第一次加载时生成内容,并且然后也根据每个请求。

我怎样才能用 hibernate 来做到这一点?我想使用 mysql,但让它使用不同的数据库,例如:appname_test

顺便说一句,当使用 Maven 项目时,IntelliJ 内部是否使用 Maven 命令来构建和运行测试?

我是否可以使用 Maven 命令行隔离我的测试并运行特定文件?

最佳答案

由于您使用的是 Spring,因此您可以使用不同的数据源配置另一个 session 工厂进行测试,并在测试用例中使用该配置文件。它全部注入(inject),因此您不必编写额外的代码,只需一些配置。

Maven 插件使用与命令行相同的命令。最终,测试的运行方式将取决于您如何配置 pom.xml。假设您使用 Surefire 插件来运行测试,您当然可以定义要使用哪个类(套件?),尽管我更喜欢在文件夹中运行所有测试。

关于java - 使用 IntelliJ 对 hibernate 进行单元测试,如何设置 session 上下文?使用种子设置测试 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8197974/

相关文章:

java - 无法执行 Activity 的方法。为什么会出错?

Hibernate 延迟加载和 Hazelcast

java - 如何捕获可变参数

java - 使用 Guice 注入(inject)泛型

java - Spring MVC : HTTP 400 Error when trying to upload csv files

Java继承倍数

android - 如何从 Android Junit ServiceTestCase 的 setUp 方法中的 Assets 复制文件?

java - 如何在 Hibernate/Grails 中使用 Switch Case/Function 进行排序

Java HQL org.hsqldb.HsqlException : user lacks privilege or object not found

java - JUnit测试方法未定义