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,デバッグ)]を選択