【问题标题】:What are you using to unit test your C++ code?你用什么来单元测试你的 C++ 代码?
【发布时间】:2008-10-24 17:32:08
【问题描述】:

我正在研究对 C++ 类进行单元测试的一些可能选项。

那么,简而言之,您使用的是什么?

【问题讨论】:

    标签: c++ unit-testing


    【解决方案1】:

    我正在使用cppunit。它是标志性的 JUnit 到 c++ 的一个很好的移植。

    【讨论】:

    • cppunit 的稳定版本缺少很多断言,并且需要大量的手写和冗余代码,而 cxxtest 或 fructose 等框架能够自动推断(实际上要感谢外部脚本)。 cppunit 可能是一个好的 Java 框架的移植,但它错过了 C++。
    【解决方案2】:

    UnitTest++。过去我使用过 Boost Test,它也很不错,但我遇到了一个问题,即 boost 测试需要一个 operator

    【讨论】:

      【解决方案3】:

      我正在使用Google Test

      【讨论】:

        【解决方案4】:

        CxxTest,它运行一个 Perl 脚本作为预处理器来检测所有名为 test* 的方法。使用起来非常容易,因为 Perl 会为您完成所有套件/案例的注册。

        【讨论】:

          【解决方案5】:

          Boost.Test。无论如何我都使用 boost,还不如使用它的测试库而不是另一个不同的库。

          【讨论】:

          • 我曾经同意你的观点......有一天我花了 4 或 5 个小时试图让 Boost Test 采用一个重载的 ostream 运算符,之后我想也许我会尝试另一个测试框架看看... UnitTest++ 没有一点抱怨。
          【解决方案6】:

          链接 lib/DLL 并使用断言语句的简单控制台应用程序。

          它符合我的主要要求:易于设置,发生错误时可以立即进入调试器。

          要重复运行单个测试,对例程的调用将(临时)复制到顶部。

          不过,它有一些缺点:首先,您没有自动视觉验证测试确实运行了,但可以使用 print 语句修复。您不会得到失败的测试列表。除此之外,与任何支持反射的环境相比,单元测试框架的附加值对我来说似乎有点低。这些总比没有单元测试好。

          【讨论】:

            【解决方案7】:

            看看CUnitWin32。它包括一个例子。

            【讨论】:

              猜你喜欢
              • 2010-10-04
              • 2010-10-05
              • 2010-09-05
              • 1970-01-01
              • 2023-04-03
              • 2010-09-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多