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

时间:2017-10-10 15:28:26

标签: java unit-testing integration-testing hsqldb

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

所以,有一些替代品,因此有任何指令“在”After“方法中删除模式,即在测试完成后”必须是推荐,只要你确定你就可以自由忽略以某种方式解决了测试独立性的需求。