单元测试本机 C++ 代码

Unit testing native C++ code

我对在 Visual Studio 2012 年使用 Microsoft::VisualStudio::CppUnitTestFramework 和 Test Explorer 进行本机 C++ 项目有一些疑问。

  1. 如何 运行 按特定顺序进行测试?在this msdn article中表示:

    For more information, see Organizing C++ Tests.

    但是msdn上没有关于它的信息,或者我就是找不到它。 (我只找到了一些关于托管项目中有序测试的文章)

  2. this 文章中说,如果我的 under_test 代码是静态库 - 我可以从测试访问私有方法。但是我不能直接访问它,并且发现没有什么比在测试时将 private/protected 定义为 public 更好的了,但我认为这是不正确的方法。

  3. 我是最近才开始使用单元测试的,不是很熟悉。 最好的框架是什么(对于 Windows + 本机 C++ 用法)?可能是 boost 或 googletest,或任何其他?我的主要 IDE 是 Visual Studio,所以我希望测试框架和 IDE 之间有很好的集成,比如来自原生测试资源管理器的 manage/run 测试等

第一个问题:不能。您应该以一种不会干扰彼此结果的方式编写单元测试。

第二:唯一的方法就是反射。我再次不推荐它。如果您觉得应该测试私有方法,那几乎总是表明您应该将 class 分成更小的 classes.

第三:Visual Studio测试框架还行,如果没有什么特殊需要就找其他的,就坚持吧。

祝你单元测试好运:) 如果你觉得有点迷茫,让我向你推荐这本书:

http://www.amazon.com/Test-Driven-Development-By-Example/dp/0321146530

它解释了您需要的一切。