用C ++进行单元测试

时间:2009-05-27 04:53:09

标签: c++ unit-testing qt tdd qt-creator

我一直在阅读有关单元测试和测试驱动开发的很多内容。

最近,我还阅读了java单元测试代码。

然而,我喜欢在Qt中发展。所以我搜索了“用c ++进行单元测试”,并发现了大量有关C ++可用的单元测试框架的信息。

但是,我无法找到各种框架的可靠比较。

所以我期待SO社区指导我选择c ++的“最佳”单元测试框架。

另外,如果有人对Qt中的TDD有特别的评论(特别是使用Qt-Creator),那么他们非常受欢迎。

7 个答案:

答案 0 :(得分:17)

通常使用Boost,但如果您使用的是Qt,那么他们的QtTestLib可能是更好的选择。

答案 1 :(得分:5)

我建议doctest(由我创建) - 它是所有流行测试框架中编译时间最轻的。它也是Catch的直接竞争对手,这是目前最常用的框架 - 检查FAQ

中的差异

答案 2 :(得分:3)

这似乎与以下问题相同:

Unit testing in C++尽管有URL标题,但实际上是c ++。

从那里,他们链接到另外两个应该有用的SO问题:

Unit testing for C++ code - Tools and methodology C++ unit testing framework

答案 3 :(得分:2)

“xUnit”系列测试框架通常非常可靠(jUnit,NUnit等)。我自己没有使用它,但是有一个jUnit for C ++的端口:

http://sourceforge.net/projects/cppunit

答案 4 :(得分:2)

维基百科有一个table comparing all (?) the C++ unit test frameworks

还有一个旧comparison of C++ unit test frameworks可用。我不认为它没有更新,所以我提到它作为补充,因为它比桌子更有争议。它涵盖了CppUnit,CppUnitLite,Boost.Test,NanoCppUnit,Unit ++,CxxTest,特别是它不包括Google C++ framework

答案 5 :(得分:1)

Boost通常是一个不错的选择,它包含一个测试框架Boost Test Library。我已经将它用于小型测试用例并且它达到了我的预期,但我没有像TTD那样广泛使用它。

答案 6 :(得分:0)

如果你想快速开始而不想弄清楚如何构建一个库,那么就有一个头文件包含解决方案,它支持固定装置(设置和拆卸),通常带有CHECK_TRUE的TEST(){}等等。 它还具有内存泄漏检测和性能测试功能。

https://gitlab.com/cppocl/unit_test_framework