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

BoostのLightweightTest

C++

Fusionのテストに使われていたので使ってみました。
インクルードするのはです。
detail以下なので取り扱い注意。


用意されているのは、3つのマクロ、BOOST_TEST, BOOST_ERROR, BOOST_TEST_EQと、
結果を出力するboost::report_errors()関数だけです。
今回使用したのはBOOST_TESTとboost::report_errors()です。


正常終了の例:

#include <vector>
#include <boost/detail/lightweight_test.hpp>

int main()
{
    std::vector<int> v;

    BOOST_TEST(v.size() == 0);
    v.push_back(3);
    BOOST_TEST(v.size() == 1);

    return boost::report_errors();
}
No errors detected.


エラーがあった場合の例:

#include <vector>
#include <boost/detail/lightweight_test.hpp>

int main()
{
    std::vector<int> v;

    BOOST_TEST(v.size() == 0);
    v.push_back(3);
    BOOST_TEST(v.size() != 1);

    return boost::report_errors();
}
main.cpp(10): test 'v.size() != 1' failed in function 'int main()' 
1 error detected.


簡単なテストであれば、これだけで十分な気がしますね。