用C ++进行单元测试

时间:2008-12-22 20:32:56

标签: c++ unit-testing

如何开始在C ++中进行单元测试?

我在Java编码时使用了Junit,发现它非常有用。 C ++中有类似的东西吗?你推荐什么?

13 个答案:

答案 0 :(得分:11)

以下是您可能想要查看的类似问题:

除了CppUnit,我建议您查看Google's unit testing framework

答案 1 :(得分:8)

我最近写了一篇由5部分组成的博客文章,内容涉及使用boost进行C ++单元测试。它提供了有关如何在Visual Studio中执行此操作的分步说明。

  • Part 1:如何使用Boost.Test在C ++中开始进行单元测试。

  • Part 2:Boost.Test在一个简单的编程练习环境中提供的断言框架,演示了测试驱动的开发。

  • Part 3:继续进行测试驱动开发,以完成PrimeFactors :: Generate方法的功能。

  • Part 4:测试驱动的UI开发。

  • Part 5:Boost.Test中的工具,用于在测试之间共享常见的设置和拆卸操作,并将测试组织到套件中。

答案 2 :(得分:7)

检查CppUnit,它是C ++的jUnit端口。

答案 3 :(得分:7)

UnitTest++,传说UnitTest ++是由comparison单元测试框架的作者编写的。

答案 4 :(得分:6)

好的回合here

我们使用Boost.Test,我们能够进行良好的跨平台持续集成。

答案 5 :(得分:4)

请看这个页面:http://gamesfromwithin.com/?p=29

这是C ++框架的最佳比较。我个人更喜欢Boost.Test。

答案 6 :(得分:3)

我对任何C ++单元测试框架都不满意。由于C ++没有反射,因此很难编写方便的单元测试工具。 CxxTest和我发现的一样好。我在一些项目中使用它,但通常我只是在没有框架或使用我自己编写的粗略框架的情况下编写自己的测试。

答案 7 :(得分:3)

我刚开始使用googletest(https://github.com/google/googletest/)。它易于集成,我没有任何问题。

答案 8 :(得分:2)

我个人最喜欢的是TUT。两个主要原因是:1)它不会强迫你使用Java-isms,而是利用C ++的优势,2)你可以控制它,编写可执行文件(我有一个模板),报告等(默认情况下提供基于流的版本。)

对我而言,它非常遵循KISS的理念,2个标题,没有宏,没有解析器,只是简单的旧C ++代码和一些骨架代码。

http://tut-framework.sourceforge.net/

答案 9 :(得分:2)

我刚刚推出了自己的框架CATCH。它仍在开发中,但我相信它已经超过了大多数其他框架。 不同的人有不同的标准,但我试图覆盖大部分地方而没有太多的权衡。 查看我的链接博客条目,了解品尝者。我的五大特色是:

  • 仅限标题
  • 自动注册基于功能和方法的测试
  • 将标准C ++表达式分解为LHS和RHS(因此您不需要一整套断言宏)。
  • 支持基于函数的fixture中的嵌套部分
  • 使用自然语言进行名称测试 - 生成函数/方法名称

它还具有Objective-C绑定。

答案 10 :(得分:1)

在不知道您要定位的平台/编译器的情况下,我只能提出一般性建议。我过去使用this(CppTest)非常成功。有一个名为UnitTest++的简单框架看起来很有趣。

答案 11 :(得分:1)

Aeryn是另一个值得关注的C ++测试框架

答案 12 :(得分:1)

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

相关问题