CppUnitの使い方
メインルーチン
#include <cppunit/ui/text/TestRunner.h> #include <cppunit/TextOutputter.h> #include <cppunit/extensions/TestFactoryRegistry.h> int main(int argc, char* argv[]) { CppUnit::TextUi::TestRunner runner; runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() ); CppUnit::Outputter* outputter = new CppUnit::TextOutputter( &runner.result(), std::cout ); runner.setOutputter( outputter ); return runner.run() ? 0 : 1; }
テスト用クラス
#include "HogeHoge.h" #include <cppunit/extensions/HelperMacros.h> #include <cppunit/TestAssert.h> class HogeHogeTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(HogeHogeTest); CPPUNIT_TEST(hogeTest); CPPUNIT_TEST(fugaTest); CPPUNIT_TEST_SUITE_END(); public: HogeHogeTest(){} ~HogeHogeTest(){} virtual void setUp(){} virtual void tearDown(){} void hogeTest() { bool condition; int value0, value1; double dvalue0, dvalue1, delta = 0.0001; /* do something */ CPPUNIT_ASSERT( condition ); CPPUNIT_ASSERT_MESSAGE( "a message", condition ); CPPUNIT_FAIL( "a message" ); CPPUNIT_ASSERT_EQUAL( value0, value1 ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "a message", value0, value1 ); CPPUNIT_ASSERT_DOUBLES_EQUAL( dvalue0, dvalue1, delta ); } void fugaTest(){} }; CPPUNIT_TEST_SUITE_REGISTRATION(HogeHogeTest);
ライブラリ cppunitd.lib(デバッグ時), cppunit.lib(リリース時)をリンク
VC6の場合,プロジェクト設定の[C/C++]タブ > [コード生成]カテゴリ > [使用するランタイムライブラリ]で,[マルチスレッド(DLL,デバッグ)]を選択