Сделайте себе одолжение и перейдите прямо к Google Test, что делает CppUnit и boost::unit_test
неудобными и повторяющимися.
Например, у вас есть простой прибор:
class MyFixture : public ::testing::Test
{
protected:
int foo;
virtual void SetUp() { foo = 0; }
};
Чтобы добавить тест на свою арматуру, писать!
TEST_F(MyFixture, FooStartsAtZero) {
EXPECT_EQ(0, foo);
}
Это все, что вам нужно. Обратите внимание на отсутствие явных объявлений testuite или отдельную повестку дня, которая повторяет все имена ваших тестов.
Собирать как в
$ 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 primer и advanced guide, чтобы узнать, что еще возможно.
Возможно, вы найдете ответы на http://stackoverflow.com/questions/242926/comparison-of-c-unit-test-frameworks полезным. –
@Alex: спасибо за сообщение, в нем есть очень полезные ссылки – chrmue
Хорошая ссылка, AAlex, +1. @chrmue, чтобы уточнить - должно ли сравнение, которое вы ищете, использовать пользователя Boost или нет? Вы спрашиваете: «Если я использую Boost для разработки, тогда есть ли преимущество использования текста Boost?» или вы просто ищете простое сравнение? – Mawg