c++ - 适用于混合 Windows 应用程序的可嵌入单元测试框架

标签 c++ unit-testing

我想测试一个非常复杂的应用程序的某些部分,其中包括主要的 native Windows 组件和大量的 WPF GUI。由于我无法详细说明的复杂性,不可能独立运行 native 部分,也无法隔离我想要测试的区域(省去讲座,我们正在谈论一个巨大的遗留代码库,我们 有重构计划)。

我正在寻找可以在 native 端调用的单元测试工具包,但必须能够在托管部分已初始化的情况下启动的应用程序运行。这似乎排除了 run executable featurecfix Windows 单元测试套件。我真的很喜欢他们的理念,比如WinUnit ,使用 DLL 编译作为添加 C++ 中缺少的反射功能并获得更类似于 NUnit 的体验的方法。

理想情况下,我希望在应用程序代码中运行 WinUnit 之类的东西并生成 HTML 报告。

我正在尝试引入更多 TDD,并且让事情尽可能精简很重要。

最佳答案

答案是 C++/CLI。

您可以将托管代码测试框架(例如 mbUnit、NUnit 和 xUnit.Net)与 C++/CLI 代码一起使用,它们工作正常。测试的内容然后调用本地库中的本地函数。

有两个小问题:

  1. xUnit.Net 中存在一个错误,阻止其 InlineData 属性在 C++/CLI 中重复,如 this question 中所述。 .
  2. 您有时必须小心测试运行器的工作目录或显式复制 native DLL,因为影子复制方法有些使用只会获得托管依赖项。

关于c++ - 适用于混合 Windows 应用程序的可嵌入单元测试框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2926454/

相关文章:

c++ - 使用 C++ 编程原理和实践第 4 章练习 1

C++ 泛型类设计,其方法返回子类

javascript - karma 测试因良好的值(value)观而失败?

java - Java Junit/Mockito 中的单元测试 void 方法

c# - 异步和等待 - 单元测试问题

c# - 如何为存储库设置最小起订量

c++ - "delete this"到一个用 std::shared_ptr 分配的对象?

c++ - Map C++ 的哈希函数

c++ - 如何使用 MFC 或 C++ 增加或减少系统时间?

c# - 如何模拟返回 List<T> 的方法?