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

はわわーっ

はわわわわっ

[cpp] boost::test を使う

cpp

ユニットテストをやってみようと思ったのでboostのやつを使ってみた。
サンプルはこんな感じ

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

int add(int i, int j) { return i + j; }

BOOST_AUTO_TEST_CASE(my_test) {
    BOOST_CHECK(add(2,2) == 4);
}

まず、

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

でBOOST_TEST_MODULEをdefineしてヘッダをインクルードする。MyTestのところはなんでもいい(?)みたいです。
あとは

BOOST_CHECK(add(2,2) == 4);

のようにすればOK。BOOST_CHECKの他にもいろいろあるみたいだけど調べてない。これだけでどうにかなる気がする。
コンパイルするときに、boost_unit_test_frameworkとboost_test_exec_monitorをリンクしないといけないらしい。
実行すると

% ./a.out 
Running 1 test case...

*** No errors detected

こんな感じに表示される。エラーが出たときには

% ./a.out                                                                                                            
Running 1 test case...
test.cpp(9): error in "my_test": check add(2,2) == 5 failed

*** 1 failure detected in test suite "MyTest"

みたいになる。