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

hah*_*g65 21 c++ tdd cppunit

期待在C++中开始做TDD.我见过CPPUnit,但我想知道是否还有其他选择?

谢谢你的建议!

Tob*_*olm 27

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

即使您不想使用模拟工具,也可以使用Google Mock.它的匹配非常有用的.


tim*_*day 9

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

  • CppUnit的文档不存在.祝你不阅读代码的情况下找出它支持的命令行选项,祝你好运.显然,对于已经熟悉JUnit的人来说,它更有意义.boost :: test有很好的文档.
  • boost :: test的自动测试注册工具使得添加单元测试用例非常容易.使用CppUnit,您必须为每个测试用例编写相当多的样板文件(标题中的一行和.cpp注册它的行,在测试方法本身之上).
  • boost :: test 允许您通过命令行中的regexp选择测试子集.当我们最初选择它时,我们不得不破解CppUnit源代码来实现它.
  • 我从CppUnit 那里想到件事就是它的" 保护者 ".你可以定义自己的,并让它们包装每个测试并检查一下(例如我们遇到了一些问题,一些代码搞乱了x87浮点舍入模式;检查状态在Protector中没有改变,很快就抓住了所有违法者).boost :: test有一些类似的东西叫做a 但是上次我尝试过你实际上无法通过一个测试失败.test_observer


Fre*_*son 6

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