Я использовал CppUnit долгое время теперь (и довольно им). Поскольку мы используем все больше частей библиотеки повышения, у меня был короткий взгляд boost.test, и я задаюсь вопросом теперь, должен ли я переключиться на boost.test в новом проекте или нет.
Кто-либо может здесь сказать мне о различиях между этими двумя платформами и преимуществами (если существует кто-либо) использования boost.test?
Сделайте себе одолжение и сразу перейдите к 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);
}
Это все, что вам нужно. Обратите внимание на отсутствие явных деклараций набора тестов или отдельной повестки дня, в которой повторяются имена всех ваших тестов.
Скомпилируйте его, как в
$ 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 и расширенное руководство , чтобы узнать, что еще можно сделать.