23

希望开始用 C++ 做 TDD。我看过 CPPUnit,但我想知道是否还有其他人们喜欢的选项?

感谢您的建议!

4

3 回答 3

29

我可以推荐Google Mock,它已成为捆绑的 Google Test 的一部分。几年前,我们从 UnitTest++ 切换到了 Google Test/Google Mock,并且从未回头。

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

于 2011-03-15T18:00:56.663 回答
10

几年前我从 CppUnit 切换到 boost::test,我对它更满意。

  • CppUnit 的文档不存在。祝你好运,在不阅读代码的情况下找出它支持的命令行选项。显然,这对已经熟悉 JUnit 的人来说更有意义。boost::test 有很好的文档
  • boost::test 的自动测试注册工具使添加单元测试用例变得异常容易。使用 CppUnit,您必须为每个测试用例编写大量样板文件(标题中的一行和 .cpp 中的一行来注册它,在测试方法本身的顶部)。
  • boost::test允许您从命令行通过正则表达式选择测试子集。当我们最初选择它时,我们必须破解 CppUnit 源代码才能让它做到这一点。
  • 我确实错过了 CppUnit的件事是它的“保护者”。您可以定义您自己的并让它们包装每个测试并检查任何内容(例如,我们遇到了一些与 x87 浮点舍入模式混淆的代码的问题;在 Protector 中检查状态是否不变,很快就会发现所有违规者)。boost::test 有一些类似的东西叫做 a但上次我试过你实际上不能通过一个测试。test_observer
于 2011-03-15T13:54:10.060 回答
6

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

于 2011-03-15T13:41:25.980 回答