読者です 読者をやめる 読者になる 読者になる

Natural Software

KinectなどのDepthセンサーを中心に活動しています

CppUnit-x ではじめる、簡単ユニットテスト−その2 複数のテストをしてみる

プログラム C++ テスト

eXtreme Programmingテスト技法―xUnitではじめる実践XPプログラミング (OOP foundations)

eXtreme Programmingテスト技法―xUnitではじめる実践XPプログラミング (OOP foundations)

写経シリーズ 第2回

List9-4〜9-6 を写経。
3つのテストがあるクラスを単体1回、連続3回で計4回、12テストを行う
#例によって注意点は @@@ でポイント

#include <cppunit/TestSuite.h>
#include <cppunit/TestCaller.h>
#include <cppunit/TestCase.h>       // @@@ インクルードしましょう
#pragma comment( lib, "cppunit.lib" )

USING_NAMESPACE_CPPUNIT

class MyTest : public TestCase
{
public:

    // いつもきまった書き方のコンストラクタ
    MyTest( const char* name ) : TestCase( name ) {}

    // 実行したいテストメソッド
    void testCalc(){}
    void testMem(){}
    void testSolve(){}

    // suite() メソッドをオーバーライドする
    static Test* suite()
    {
        TestSuite* suite = new TestSuite( "MyTest" );

        suite->addTest( new TEST_CALLER( MyTest, testCalc ) );
        suite->addTest( new TEST_CALLER( MyTest, testMem ) );
        suite->addTest( new TEST_CALLER( MyTest, testSolve ) );

        return suite;
    }
};

#include <cppunit/TestRunner.h>
#include <cppunit/RepeatedTest.h>       // @@@ インクルードしましょう

int main( int argc, char* argv[] )
{
    TestRunner runner;

    // TestRunner にテストを追加して実行
    runner.addTest( "MyTest", MyTest::suite() );
    runner.addTest( "MyTest * 3", new RepeatedTest( MyTest::suite(), 3 ) );

    return runner.run( argc, argv );
}
// EOF


実行結果

............

OK (12 tests)