Boost Test では BOOST_AUTO_TEST_CASE で BOOST_FIXTURE_TEST_SUITE で囲った方が勝手が良い2020年12月28日 13時12分01秒

Boost C++ Library のなかに、Boost Test がある。

Boost Test では BOOST_AUTO_TEST_CASE でテストケースを記述する。そして、 BOOST_FIXTURE_TEST_SUITE と BOOST_AUTO_TEST_SUITE_END で囲むことにより、Fixture を利用できる。

Google Test では、Fixture 用に、利用するマクロが別途用意されているが、Boost Test では、Fixture の在り無しに関係ない。逆に、Boost Test では、Fixture の領域を指定する二つのマクロがある。

Boost Test では、Fixture 必須で利用開始した方が、後々に便利だ。Fixture が必要無い時点では、空のクラスを定義しておくだけで良い。これがあると、後でテスト用の初期化、終了処理を追加するのが楽になる。

#include <boost/test/unit_test.hpp>

class fixture
{
};

BOOST_FIXTURE_TEST_SUITE( suite, fixture )
 
BOOST_AUTO_TEST_CASE( case1 )
{
    BOOST_REQUIRE( true );
}

BOOST_AUTO_TEST_SUITE_END()


BOOST_AUTO_TEST_CASE( case2 )
{
    BOOST_REQUIRE( ! false );
}
また、Fixture を使うと、テストケースの前に Fixture の名前が付く。上の例だと、一つ目のテスト名は「suite/case1」になり、二つ目は「case2」になる。つまり、Fixture を使うと、テストケースが一まとめにされるのだ。