当前位置: 首页 > 面试题库 >

清除整个数据库(用于使用Hibernate进行单元测试)

韩阳成
2023-03-14
问题内容

我的单元测试使用Hibernate连接到内存中的HSQLDB数据库。我希望可以采用JUnit
TestCase.setUp()方法清除并重新创建数据库(包括模式和所有数据的整个数据库)的方法。


问题答案:

您可以配置hibernate配置文件,以强制数据库每次重新创建表和架构。

<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create-drop</property>

hibernate.hbm2ddl.auto创建SessionFactory时,自动将模式DDL验证或导出到数据库。使用create-
drop时,显式关闭SessionFactory时将删除数据库架构。

例如验证| 更新| 创建| 创建放置

如果您不希望在实际的hibernate配置中使用此配置,则可以创建一个hibernate配置用于单元测试。



 类似资料:
  • 问题内容: 我有一个Spring + Hibernate + H2项目,它是根据我在Internet上找到的一个示例制作的。除了每次我运行单元测试时,数据库都会被清除外,它的工作效果非常好。我不确定是什么原因造成的。测试可以顺利通过,但是我在测试运行后抹去了测试之前在数据库中输入的所有内容。 任何想法都会有所帮助!谢谢! 这是我的Infrastructure.xml persistence.xml

  • 问题内容: 我选择的数据库是MongoDB。我正在编写一个数据层API,以从客户端应用程序中抽象实现细节- 也就是说,我实质上是在提供一个公共接口(一个充当IDL的对象)。 我正在以TDD方式测试自己的逻辑。在每个单元测试之前,调用一个方法来创建数据库单例,此后,当测试完成时,将调用一个方法来删除数据库。这有助于促进单元测试之间的独立性。 几乎所有单元测试(即 执行上下文查询 )都需要先进行某种插

  • 我想测试以下骆驼路线。我在网上找到的所有例子都有以文件开头的路由,在我的例子中,我有一个Springbean方法,每隔几分钟就会被调用一次,最后消息被转换并移动到jms以及审计目录。 我对这条路线的写测试毫无头绪。目前我在测试用例中所拥有的是

  • 我正在构建一个android应用程序,它使用Firebase作为后端,并采用模型、视图和演示者架构。然而,Firebase是一种云服务的事实使我的android应用程序中的自动测试变得复杂。到目前为止,我已经构建了大部分身份验证系统,但无法看到如何在我的应用程序中实现Firebase代码的单元测试。在端到端测试方面,我也陷入了困境。 由于测试是任何android应用程序的基础,没有it应用程序开发

  • 我有一个Spring Data JPA存储库,只要不添加Spring Security性依赖项(spring-boot-starter-security)并在存储库上添加相应的方法授权注释,单元测试就可以正常工作。添加后,在运行单元测试时,我会得到一个AuthenticationCredentialsNotFound异常。 如何在单元测试中“验证”对存储库方法的调用?