Concediti un favore e vai direttamente allo Google Test, il che rende CppUnit e boost::unit_test
un aspetto 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, scriverlo!
TEST_F(MyFixture, FooStartsAtZero) {
EXPECT_EQ(0, foo);
}
Questo è tutto ciò che serve. Si noti la mancanza di dichiarazioni esplicite di testsuite o di un'agenda separata che ripete tutti i nomi dei test.
compilare 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.
(gestire direttamente per vedere il bel testo in verde per passare le prove!)
questo è solo l'inizio. Dai uno sguardo allo Google Test primer e allo advanced guide per vedere cos'altro è possibile.
fonte
2010-06-27 00:01:53
Probabilmente troverai utili le risposte a http://stackoverflow.com/questions/242926/comparison-of-c-unit-test-frameworks. –
@Alex: grazie per il tuo post, ci sono alcuni link molto utili in esso – chrmue
Good link, AAlex, +1. @ chrmue, per chiarire - il confronto che stai cercando presuppone un utente Boost o no? Stai chiedendo "se utilizzo Boost per svilupparlo, allora c'è un vantaggio nell'usare il testo Boost?" o stai solo cercando un confronto diretto? – Mawg