Domanda

Ho usato CppUnit per un bel po 'di tempo (e sono felice con esso). Come stiamo usando sempre di più parti della libreria Boost ho avuto un breve sguardo sul boost.test e mi chiedo ora se devo passare ad boost.test in un nuovo progetto oppure no.

Qualcuno può qui mi dica sulle differenze tra i due quadri e dei benefici (se ce ne sono) di utilizzare boost.test?

È stato utile?

Soluzione

Fatevi un favore e andare direttamente al Google prova , che rende CppUnit e boost::unit_test sguardo goffo e ripetitivo.

Per esempio, supponiamo di avere un semplice apparecchio:

class MyFixture : public ::testing::Test
{
  protected:
  int foo;

  virtual void SetUp() { foo = 0; }
};

Per aggiungere un test per il vostro dispositivo, scrivere!

TEST_F(MyFixture, FooStartsAtZero) {
  EXPECT_EQ(0, foo);
}

Questo è tutto ciò che serve. Si noti la mancanza di dichiarazioni testsuite esplicite o di un ordine del giorno separato che i nomi ripete tutti i test.

compilarlo come in

$ g++ -o utest utest.cpp -lgtest -lgtest_main

ed eseguire il test per ottenere

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.

(Esegui da soli per vedere il bel testo in verde per passare le prove!)

Questo è solo l'inizio. Date un'occhiata alla Google prova innesco e la guida avanzata per vedere cos'altro è possibile.

Altri suggerimenti

Come è questo goffo meno di Boost.Test alternativa:

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

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

Macro davvero un po 'più a lungo, ma questo è più sicuro ed è consigliato pratica in C ++.

Sono ancora vedere una sola ragione tecnica di preferire Google prova (e so che un bel po 'a preferire Boost.Test). Il resto è solo la vostra preferenza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top