XcodeでBoost.Testを使ってみる


今更ですが、メモしときます。

boostインストール

$ brew install boost

Xcodeの設定

プロジェクトにターゲットを作って、Build Phases > Link Binary With Librariesに

libboost_unit_test_framework-mt.dylib  

を設定。
これ自体は/usr/local/lib以下にsymlinkが作られているので、特に何もしなくても「+」ボタン押せば一覧に出てくる(はず

テスト用mainを用意する

main.cppに以下3行コピペ。
BOOST_TEST_MODULEの後ろのMyTestは好きな名前にしてOK

#define BOOST_TEST_MODULE MyTest
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp> 

これ以外のコードは不要。
main関数はunit_test.hppでどうにかしてくれる。

.dylibではなく.aをリンクしたい場合は、BOOST_TEST_DYN_LINKの行を消せばたぶんOK(試してないです・・・

テストケースを書く

適当にcppファイルを作って、以下のように書く。

#include <boost/test/unit_test.hpp>

namespace {
    // フィクスチャが必要ならここに書いて使う
    // このstructのメンバはテストケースから直接参照できる
    struct Fixture {
        Fixture() {
        }
    };

    BOOST_FIXTURE_TEST_SUITE(mytest, Fixture)

    BOOST_AUTO_TEST_CASE(foo_test) {
        BOOST_CHECK(false);
    }

    BOOST_AUTO_TEST_CASE(bar_test) {
        BOOST_CHECK(true);
    }

    BOOST_AUTO_TEST_SUITE_END()
}

必要ならcppをさらに作って同じように追加すればOK

Leave a Comment