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

Boost.Testをヘッダオンリーライブラリとして使用する

C++


の代わりに


をインクルードすれば、ヘッダオンリーライブラリとして使用できます。


失敗するケース

#define BOOST_TEST_MAIN
#include <boost/test/included/unit_test.hpp>

BOOST_AUTO_TEST_CASE(test1)
{
    BOOST_CHECK(2 == 1); // これは失敗する
}

BOOST_AUTO_TEST_CASE(test2)
{
    const int i = 0;

    BOOST_CHECK_EQUAL(i, 2); // これも失敗する
    BOOST_CHECK_EQUAL(i, 0); // 成功する
}
Running 2 test cases...
C:/Language/cpp/main.cpp(6): error in "test1": check 2 == 1 failed
C:/Language/cpp/main.cpp(13): error in "test2": check i == 2 failed [0 != 2]

*** 2 failures detected in test suite "Master Test Suite"


成功するケース

#define BOOST_TEST_MAIN
#include <boost/test/included/unit_test.hpp>

BOOST_AUTO_TEST_CASE(test1)
{
    BOOST_CHECK(2 == 2);
}

BOOST_AUTO_TEST_CASE(test2)
{
    const int i = 0;

    BOOST_CHECK_EQUAL(i, 0);
}
Running 2 test cases...

*** No errors detected