【发布时间】:2019-07-30 06:00:45
【问题描述】:
我基本上有一个测试场景,我
- 创建数据库
- 用一些数据填充它
- 执行要测试的业务逻辑,修改数据。我不拥有业务逻辑实现或数据库模式。我必须测试已经存在的内容。
- 断言数据已按预期更改
- 删除数据库
SQL Server 是否仅在内存中支持类似的东西,以便我可以通过删除 #1 和 #5 来加速它?显然我不需要坚持。
【问题讨论】:
-
我不知道 SQL Server 是否只有内存版本。但是,您可能会考虑在 SQL Server 之上使用缓存层。或者,对于纯内存数据库,请阅读 H2 之类的内容。
-
H2 没有帮助,因为我不拥有业务逻辑的现有实现
-
这是个错误的问题。 SQL Server 自 SQL Server 2014 起就有内存表。所有版本都有临时表和表变量。所有这些都将涵盖要点。这些都与 testing 无关(可能除了临时表)
-
@PanagiotisKanavos 我不同意我之前的评论,但是对于 integration 测试,实际的 SQL Server 实例正好与 OP 应该运行这些测试的内容相矛盾。对于 unit 测试,可以模拟数据库。
-
@Liero 另一种可能性是创建测试数据库,分离它并将文件用作模板。每次您想要一个新的测试数据库时,将它们复制到一个新位置,后跟一个
ATTACH DATABASE。这将比 RESTORE 更快,因为它没有恢复阶段
标签: sql-server integration-testing in-memory-database database-testing