使用C ++进行测试驱动开发

时间:2011-03-15 04:48:33

标签: c++ tdd cppunit

希望开始用C ++编写TDD。我见过CPPUnit,但我想知道人们更喜欢其他选择吗?

感谢您的建议!

3 个答案:

答案 0 :(得分:27)

我可以推荐Google Mock。它附带了Google Test捆绑的副本。几年前我们从UnitTest ++转换为Google Test / Google Mock并且从未回头过。

即使您不想使用模拟工具,也可以使用Google Mock。其matchersvery useful

答案 1 :(得分:9)

几年前我从CppUnit切换到boost :: test,我对此感到非常高兴。

  • CppUnit的文档不存在。祝你好运trying to find out它支持哪些命令行选项而无需阅读代码。显然,对于已经熟悉JUnit的人来说,它更有意义。 boost :: test非常出色documentation
  • boost :: test的自动测试注册facility使得添加单元测试用例非常容易。使用CppUnit,你必须为每个测试用例编写相当多的样板文件(标题中的一行和.cpp注册它的行,在测试方法本身之上)。
  • boost :: test lets you通过命令行中的regexp选择测试子集。我们不得不破解CppUnit来源,以便在我们最初选择它时做到这一点。
  • 我从CppUnit做的{em>一个事情miss就是它的“Protectors”。您可以定义自己的并让它们包装每个测试并检查任何内容(例如,我们遇到了一些代码弄乱了x87浮点舍入模式的问题;在Protector中检查状态未发生变化很快就抓住了所有违规者)。 boost :: test有一些叫做test_observer的类似的东西,但是上次我试过你实际上无法通过一个测试失败。

答案 2 :(得分:6)

如果您只是在寻找C ++单元测试框架,请参阅此问题及其答案:C++ unit testing framework