用于在存储库测试中创建相同表的 Sql 脚本

问题描述

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

谢谢!

解决方法

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

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

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