我知道已经有一些关于推荐c++单元测试框架的问题,但所有的答案都没有帮助,因为他们只是推荐了一个框架,而没有提供任何关于(特性)比较的信息。
我认为最有趣的框架是CppUnit、Boost和新的谷歌测试框架。有人做过比较吗?
我知道已经有一些关于推荐c++单元测试框架的问题,但所有的答案都没有帮助,因为他们只是推荐了一个框架,而没有提供任何关于(特性)比较的信息。
我认为最有趣的框架是CppUnit、Boost和新的谷歌测试框架。有人做过比较吗?
当前回答
Wikipedia提供了一个完整的单元测试框架列表,并列出了支持或不支持的特性。
其他回答
有关讨论,请参阅这个问题。
他们推荐的文章: 探索c++单元测试框架丛林,作者:Noel Llopis。 最近的:c++测试单元框架
我还没有找到一篇比较googletest和其他框架的文章。
Wikipedia提供了一个完整的单元测试框架列表,并列出了支持或不支持的特性。
一个新的播放器是谷歌测试(也称为谷歌c++测试框架),这是非常好的。
#include <gtest/gtest.h>
TEST(MyTestSuitName, MyTestCaseName) {
int actual = 1;
EXPECT_GT(actual, 0);
EXPECT_EQ(1, actual) << "Should be equal to one";
}
主要特点:
可移植的 致命和非致命断言 ASSERT_EQ(5, Foo(i)) << " where i = " << i; 谷歌Test自动检测您的测试,不需要您枚举它们以运行它们 使扩展断言词汇表变得容易 死亡试验(见高级指南) 子例程循环的SCOPED_TRACE 您可以决定运行哪些测试 生成XML测试报告 fixture / Mock /模板…
CPUnit (http://cpunit.sourceforge.net)是一个类似于谷歌Test的框架,但它依赖较少的macos(断言是函数),并且其中的宏都带有前缀,以避免常见的宏陷阱。测试如下所示:
#include <cpunit>
namespace MyAssetTest {
using namespace cpunit;
CPUNIT_FUNC(MyAssetTest, test_stuff) {
int some_value = 42;
assert_equals("Wrong value!", 666, some_value);
}
// Fixtures go as follows:
CPUNIT_SET_UP(MyAssetTest) {
// Setting up suite here...
// And the same goes for tear-down.
}
}
他们会自动注册,所以你不需要更多。然后只需编译并运行即可。我发现对于那些不得不花一些时间编写Java程序的人来说,使用这个框架非常像使用JUnit。非常好!
CppUTest -非常不错的轻量级框架,带有模拟库。值得一看。