BOOST TEST -旧式 minimal ヘッダファイルを使って単体ファイルで利用2020年04月24日 11時56分34秒

Boost Test が出されてから結構経つ。Google Test に押されてはいるが、使い様によっては便利。

まずは、minimal ヘッダを使って、最も簡単にテスト。実はこれは旧式なやり方で、新しいバージョンではやり方が若干違う。新しい方式への変換を勧めてはいるが、この形が一番簡単で、実験で初めて試すのには都合が良いのであえて、ここで紹介する。

コードで示した方が分かりやすいので、実例から。

#include <boost/test/minimal.hpp>

int test_main( int, char** )
{
    int one = 1;
    int two = 3;

    BOOST_CHECK( one == 1 );
    BOOST_CHECK( two == 2 );

    BOOST_REQUIRE( one == 1 );
    BOOST_REQUIRE( two == 2 );

    BOOST_REQUIRE( two != one );

    return 0;
}
まず最初に、boost/test/minimal.hpp を読む。このファイルは幾つかの特徴がある。
  1. ヘッダファイルが main 関数を定義する。そのため、main 関数は自分では実行しないが、代わりに test_main を定義する。
  2. ヘッダファイルが全部インラインで実装するので、ライブラリなどは別途リンクする必要が無い。
  3. minimal は古いので、もっと使い勝手のいいマクロが使えない。
  4. boost のヘッダファイルがある場所を -I でコンパイラに指定しなければいけない環境もある。

コンパイルの例と、実行結果。

% c++ -I /usr/local/include/ boost_minimal.cpp
% ./a.out
boost_minimal.cpp(11): test two == 2 failed in function: 'int test_main(int, char **)'
boost_minimal.cpp(14): test two == 2 failed in function: 'int test_main(int, char **)'

**** 2 errors detected
  1. BOOST_CHECK は式が期待した通りかを確かめて、異なる場合はエラーを出力し、テストを続ける。
  2. BOOST_REQUIRE は式が期待した通りかを確かめて、異なる場合はエラーを出力し、テストを終了する。
  3. 次は、新しいヘッダファイルを使った単体ユニットを紹介したい。

    次回

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2020/04/24/9238763/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。