【发布时间】:2021-12-27 07:13:54
【问题描述】:
我有一个用 C 语言用 Visual Studio 2019 编写的项目。我希望对我的代码的各个部分进行单元测试,并且还能够模拟一些功能。解决此问题的最佳方法是什么?
我已尝试在 Visual Studio 中 C++ 的本机单元测试框架中,在与我的生产代码相同的解决方案中创建一个新的单元测试项目。问题是我必须在我制作的每个单元测试项目中包含我的库文件,这变得乏味。我已经尝试过 C 的 Fake Function Framework,但无法使其工作。
我对新想法持开放态度,但它必须在 Visual Studio 中,因为我的生产代码放在 Visual Studio 的项目中。
编辑:我的解决方案结构的图片显示在图片here 在构建之前,我必须将我的 productionCode 项目中的库文件包含在我的单元测试项目中。
【问题讨论】:
-
在绝对基础上,建立单元测试项目有多乏味?毕竟,每个库通常只有一个。
-
您可以只为测试用例编写函数并通过调用这些函数来执行测试用例。
-
您不必在每个单元测试项目中都包含您的库文件。
-
问题是,如果我希望对依赖于其他 10 个需要存根/模拟的文件的文件进行单元测试。在项目已经构建之后,我将如何模拟这些文件?
-
@Kasper 运行时模拟可以使用接口(抽象类),结合 IoC 或依赖注入(它们不一样,IoC 只是意味着回调)。
标签: c++ c visual-studio unit-testing mocking