在 HSQLDB 中,为什么需要在 "After" 方法中删除模式,即在测试完成后?

In HSQLDB, why is it necessary to drop schema in the "After" method i.e., after the test is completed?

嘿,我正在使用 HSQLDB 作为数据库编写一些单元测试和集成测试。在测试中,建议在每个单元或集成测试之后删除模式。测试完成后,表格不会自行删除吗?还是这样做是为了防止构建时出错?

这取决于您的 HSQLDB 实例的范围。如果您为每个测试创建一个,然后在测试完成后丢弃它,那么删除模式是多余的,但可能是许多开发人员没有明确意识到(甚至不想关心)他们所使用的 HSQLDB 实例的生命周期测试用例因此建议在测试完成后删除架构。

目标是测试独立性;如果您在每次测试后删除架构(或使用 TRUNCATE SCHEMA <schema_name> AND COMMIT;),那么您可以确信由 TestA 插入或更改的数据不会绊倒 TestB

当然,测试独立性也可以通过以下方式实现:

  • 确保每个测试都在完成时回滚的事务中运行
  • 确保每个测试都使用在测试完成时停止的专用 HSQLDB 实例

因此,还有其他选择,因此任何说明 "to drop schema in the “After” method i.e., after the test is completed" 都必须是建议,只要您确定自己有 某种方式[=28=,就可以随意忽略该建议] 解决了测试独立性的需求。