Database 数据库相关应用程序的自动化单元测试 我正在研究C++应用程序,它对数据库有很大的依赖性。如果我需要实现自动化单元测试,那么最好的选择是什么 在DB中插入测试函数所需的虚拟数据,并调用测试函数 模块化DB操作代码和处理代码,但在遗留代码中可能不可行 覆盖数据库操作,以便返回特定数据,而不是实际的数据库命中;看起来很复杂

Database 数据库相关应用程序的自动化单元测试 我正在研究C++应用程序,它对数据库有很大的依赖性。如果我需要实现自动化单元测试,那么最好的选择是什么 在DB中插入测试函数所需的虚拟数据,并调用测试函数 模块化DB操作代码和处理代码,但在遗留代码中可能不可行 覆盖数据库操作,以便返回特定数据,而不是实际的数据库命中;看起来很复杂,database,unit-testing,tdd,Database,Unit Testing,Tdd,理想情况下,单元测试不会与数据库交互,这将是集成测试,因为您希望单元测试快速且独立(第一原则)。 只有在对象和DB交互之间有清晰的分离时,这才可能实现。 一个可能值得考虑的好折衷方案是使用内存中的数据库进行单元测试,因为这将允许测试快速运行,并允许在测试之间使用静态数据的灵活性 要考虑的关键是如何和何时重置数据库以确保测试是独立的并且可以按任意顺序运行,除非您专门编写以给定序列运行的测试。 然后,可能会使用实际数据库编写一个完整性集成测试

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

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

然后,可能会使用实际数据库编写一个完整性集成测试