Mr.*_*Boy 17 c++ unit-testing cppunit
我遇到了cppunit,但它看起来并不容易使用(也许我看起来并不难,也许是因为C++不能像Java/C#那样工作).有广泛使用的简单替代品吗?
实际上,是 cppunit是C++的标准单元测试框架吗?
Gra*_*erg 21
C++ 没有标准的单元测试库.有很多选择可供选择; cppunit就是其中之一.
在我的公司,我们使用Google Test及其合作伙伴Google Mock进行单元测试和对象模拟.我发现它们结合起来更容易使用,并且比cppunit更强大.
phi*_*red 21
我刚推出了自己的框架,CATCH.它仍在开发中,但我相信它已经超过了大多数其他框架.不同的人有不同的标准,但我试图覆盖大部分地方而没有太多的权衡.看看我的链接博客条目,了解品尝者.我的五大特色是:
它还具有Objective-C绑定.
作为一个例子,这里是你如何编写@dmeister所引用的gtest示例的等价物:
TEST_CASE( "Factorial/Handles zero input", "Tests factorial of 0.")
{
REQUIRE( Factorial(0) == 1 );
}
TEST_CASE( "Factorial/Handles positive input", "Tests factorial of positive numbers.")
{
REQUIRE( Factorial(1) == 1 );
REQUIRE( Factorial(2) == 2 );
REQUIRE( Factorial(3) == 6 );
REQUIRE( Factorial(8) == 40320 );
}Run Code Online (Sandbox Code Playgroud)
如果测试失败,您仍然可以独立记录LHS和RHS值.
Google Test Framework是另一种选择.
以下是文档中的一个简单示例:
// 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));
}
Run Code Online (Sandbox Code Playgroud)
它还可以与谷歌的C++模拟框架gmock很好地配合使用.
| 归档时间: |
|
| 查看次数: |
14065 次 |
| 最近记录: |