我有一个文件 - 在一个大型遗留代码库中 - 包含访问数据库的方法。没有使用任何类,只有一个带有方法声明的头文件,以及带有实现的源文件。
我想覆盖这些方法以消除单元测试期间的数据库访问。
我想到了以下选项:
- 将文件放入类并覆盖方法。
这里的主要缺点是它会导致整个代码库发生很多变化。
不理想,虽然它确实改进了代码...... - 用 an 包裹整个源文件
#ifdef PRODUCTION_CODE
并创建一个包含存根的新源文件并用相反的东西包裹它,即使整个东西编译依赖。这里的问题是,在执行回归测试的构建系统中,我必须编译两次,一次是为了创建应用程序并进行回归测试,另外一次是创建单元测试可执行文件。
有什么推荐的方法吗?