boost.test по сравнению с CppUnit

Я использовал CppUnit долгое время теперь (и довольно им). Поскольку мы используем все больше частей библиотеки повышения, у меня был короткий взгляд boost.test, и я задаюсь вопросом теперь, должен ли я переключиться на boost.test в новом проекте или нет.

Кто-либо может здесь сказать мне о различиях между этими двумя платформами и преимуществами (если существует кто-либо) использования boost.test?

14
задан chrmue 23 June 2010 в 09:23
поделиться

1 ответ

Сделайте себе одолжение и сразу перейдите к 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 и расширенное руководство , чтобы узнать, что еще можно сделать.

17
ответ дан 1 December 2019 в 06:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: