【问题标题】:How do I Unit Test and mock a C project in Visual Studio如何在 Visual Studio 中对 C 项目进行单元测试和模拟
【发布时间】: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


【解决方案1】:

不确定这是否是我自己问题的答案,但我最终将我的大型项目拆分为更小的组件,然后为每个组件编写单元测试,而不是包含大型项目中的库文件。这样我就可以使用 Fake Function Framework 来伪造依赖项。 感谢您的帮助

【讨论】:

    猜你喜欢
    • 2012-10-10
    • 1970-01-01
    • 2021-07-23
    • 2023-02-24
    • 2020-01-11
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多