【问题标题】:Sql scripts for creation of same table in repository tests用于在存储库测试中创建相同表的 Sql 脚本
【发布时间】:2021-05-31 16:15:18
【问题描述】:

我有几个 Spring 数据存储库,它们有一些连接到同一个表,比如说客户端表。因此,为了不重复为每个存储库测试创建 Client 表的 sql 脚本(这将是一个不好的做法),将这个表的创建外部化在单个 sql 文件中并导入它是一个好习惯吗?在测试中他们需要它吗?

谢谢!

【问题讨论】:

  • 一开始为什么要为测试只创建部分模式?只需使用 Liquibase 或您正在使用的任何东西创建完整的架构并完成它。
  • 我正在使用 JPA。那么,为每个存储库测试重新创建整个数据库是一个好习惯吗?
  • 至少我会这样做,而且我在几乎所有情况下都看到过。

标签: testing spring-data-jpa sql-scripts


【解决方案1】:

通常的做法不是为每个测试创建自定义架构,而是使用您将在生产中使用的相同脚本/机制为所有测试创建完整架构。

数据库模式不是模块化的,它们到处都有依赖关系。 这些依赖项以外键的形式出现,但也以触发器或物化视图和约束的形式出现。

如果您的架构小而简单,那么将其分解成碎片是没有意义的。 如果它很大,很容易遗漏一些东西,并且测试不能正确代表生产环境。

【讨论】:

    猜你喜欢
    • 2011-08-11
    • 1970-01-01
    • 2021-06-16
    • 2015-10-20
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    相关资源
    最近更新 更多