chr*_*mue 14 c++ boost cppunit boost-test
我一直在使用CppUnit已经有一段时间了(我很满意).当我们使用boost库的越来越多的部分时,我对boost.test进行了简短介绍,现在我想知道是否应该在新项目中切换到boost.test.
谁能在这里告诉我两个框架之间的差异以及使用boost.test的好处(如果有的话)?
Gen*_*tal 41
这比Boost.Test替代品更不笨重:
class MyFixture { MyFixture() { /* setup here */} };
BOOST_AUTO_TEST_CASE( my_test, MyFixture )
{
BOOST_CHECK_EQUAL(0, foo);
}
Run Code Online (Sandbox Code Playgroud)
宏确实有点长,但这更安全,建议在C++中练习.
我还没有看到更喜欢Google Test的一个技术理由(而且我知道很多人更喜欢Boost.Test).其余的只是你的偏好.
Gre*_*con 17
帮自己一个忙,直接进入Google Test,这使得CppUnit boost::unit_test
变得笨拙和重复.
例如,假设您有一个简单的夹具:
class MyFixture : public ::testing::Test
{
protected:
int foo;
virtual void SetUp() { foo = 0; }
};
Run Code Online (Sandbox Code Playgroud)
要为您的灯具添加测试,请写下它!
TEST_F(MyFixture, FooStartsAtZero) {
EXPECT_EQ(0, foo);
}
Run Code Online (Sandbox Code Playgroud)
这就是你所需要的.注意缺少明确的testsuite声明或单独的议程重复所有测试的名称.
将其编译为
$ g++ -o utest utest.cpp -lgtest -lgtest_main
然后运行你的测试
Running main() from gtest_main.cc [==========] Running 1 test from 1 test case. [----------] Global test environment set-up. [----------] 1 test from MyFixture [ RUN ] MyFixture.FooStartsAtZero [ OK ] MyFixture.FooStartsAtZero (0 ms) [----------] 1 test from MyFixture (0 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test case ran. (0 ms total) [ PASSED ] 1 test.
(自己运行以查看通过测试的漂亮绿色文本!)
这仅仅是个开始.查看Google Test入门和高级指南,了解其他可行方法.
归档时间: |
|
查看次数: |
12040 次 |
最近记录: |