我遇到过cppunit,但它看起来不太容易使用(可能我没有仔细研究,可能是因为C++不像Java/C#那样工作)。有没有广泛使用的、简单的替代方案?
实际上,cppunit是C++的标准单元测试框架吗?
发布于 2010-01-11 05:31:45
C++没有标准的单元测试库。有很多选择可供选择;cppunit就是其中之一。
在我的公司,我们使用Google Test及其合作伙伴Google Mock进行单元测试和对象模拟。我发现它们结合在一起更容易使用,而且比cppunit强大得多。
发布于 2010-01-11 05:34:14
Google Test框架是一种替代方案。
下面是来自documentation的一个简单示例
// Tests factorial of 0.
TEST(FactorialTest, HandlesZeroInput) {
EXPECT_EQ(1, Factorial(0));
}
// Tests factorial of positive numbers.
TEST(FactorialTest, HandlesPositiveInput) {
EXPECT_EQ(1, Factorial(1));
EXPECT_EQ(2, Factorial(2));
EXPECT_EQ(6, Factorial(3));
EXPECT_EQ(40320, Factorial(8));
}
它与谷歌的C++模拟框架gmock配合得也很好。
发布于 2010-01-11 14:11:08
CppUnit可能是C++的第一个单元测试框架。它是著名的Java框架Junit的直接移植。这使得从Junit的转换变得更容易,但代价是一个有点笨重的框架,它没有利用诸如RAII之类的C++功能。这就是为什么像CppUnitLite,NanoCppUnit这样的轻量级版本被创建出来的原因。在其他改进中,CppUnit2应该改进这一点。
Tut过去很轻,只有一个头文件,但最新版本引入了一个库。
就“标准”框架而言,没有一个,C++1X也没有定义一个。
https://stackoverflow.com/questions/2038705
复制相似问题