Boost Test フレームワークを使用して C++ コードの単体テストを行っていますが、関数がアサートするかどうかをテストできるかどうか疑問に思っています。はい、少し奇妙に聞こえますが、ご了承ください。私の関数の多くは、エントリ時に入力パラメーターをチェックし、それらが無効かどうかをアサートします。これをテストすると便利です。例えば:
void MyFunction(int param)
{
assert(param > 0); // param cannot be less than 1
...
}
私はこのようなことができるようにしたいと思います:
BOOST_CHECK_ASSERT(MyFunction(0), true);
BOOST_CHECK_ASSERT(MyFunction(-1), true);
BOOST_CHECK_ASSERT(MyFunction(1), false);
...
Boost Testを使用してスローされている例外を確認できるので、assertマジックもあるのだろうか...