boost.test vs. CppUnit - PullRequest
       31

boost.test vs. CppUnit

14 голосов
/ 23 июня 2010

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

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

Ответы [ 2 ]

41 голосов
/ 17 марта 2011

Как это менее неуклюже, чем альтернатива Boost.Test:

class MyFixture { MyFixture() { /* setup here */} };

BOOST_AUTO_TEST_CASE( my_test, MyFixture )
{
    BOOST_CHECK_EQUAL(0, foo);
}

Макросы действительно немного длиннее, но это безопаснее и рекомендуется на C ++.

Мне еще предстоит увидеть одну техническую причину, чтобы предпочесть Google Test (и я знаю немало, чтобы предпочесть Boost.Test). Остальное - только ваши предпочтения.

17 голосов
/ 27 июня 2010

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

...