【发布时间】:2009-02-24 02:36:24
【问题描述】:
在具有继承和虚函数的面向对象语言中,从单元测试代码中删除依赖项(例如数据库、API 调用等)可以简单到将这些依赖项封装在它们自己的方法中,然后在一个测试类继承自要测试的类。
但是,我在尝试对过程代码(特别是 C)执行类似操作时遇到了问题。如果没有继承,我就无法覆盖这些调用,那么在对过程代码进行单元测试时,如何提供类似的依赖删除?
一种选择是提供对这些依赖项的调用的替代方法,并用#ifdefs 包围它们,但理想的方法是将单元测试应用于与最终构建相同的代码。这可能吗?
【问题讨论】:
-
我不明白你的问题。 C++是一种具有继承和虚函数的面向对象语言。
-
C++ 可以以类似 C 的形式在程序上编写。这可能并不理想,但可以做到。我将把问题更新为只说“C”以避免混淆,因为大概适用于 C 的任何内容也将适用。
标签: c unit-testing