针对数据库相关应用程序的自动单元测试

时间:2017-07-21 12:12:28

标签: database unit-testing tdd

我正在研究对数据库有很大依赖性的C ++应用程序。如果我需要实施自动化单元测试,最佳选择是什么?

  1. 在测试功能需要的DB和呼叫测试功能中插入虚拟数据。
  2. 模块化数据库操作代码和处理代码,但在遗留代码中可能不可行。
  3. 覆盖数据库操作,以便返回特定数据而不是实际数据库命中;看起来很复杂。

1 个答案:

答案 0 :(得分:1)

理想情况下,单元测试不会与数据库交互,这些将是集成测试,因为您希望单元测试快速且独立(FIRST原则)。 只有在对象和数据库交互之间有清晰的分离时,才可能实现这一点。 可能值得考虑的一个好的折衷方案是使用内存数据库进行单元测试,因为这样可以使测试快速运行,并允许在测试之间保持数据的灵活性。

要考虑的关键事项是如何以及何时重置数据库以确保测试是独立的并且可以按任何顺序运行,除非您专门编写测试以在给定的序列中运行。

然后可以使用实际数据库编写集成测试以获得完整性。