テスト対象のオブジェクトに例外をスローさせるBoostユニットテストケースがあります(これがテストであり、例外が発生します)。その特定の例外を予期するようにテストで指定するにはどうすればよいですか。
BOOST_AUTO_TEST_CASE_EXPECTED_FAILURESを使用して、テストに特定の数の失敗があることを指定できますが、それはかなり不特定のようです。テストの特定の時点で、例外をスローする必要があり、失敗としてカウントしないようにする必要があると言えるようにしたいと思います。
テスト対象のオブジェクトに例外をスローさせるBoostユニットテストケースがあります(これがテストであり、例外が発生します)。その特定の例外を予期するようにテストで指定するにはどうすればよいですか。
BOOST_AUTO_TEST_CASE_EXPECTED_FAILURESを使用して、テストに特定の数の失敗があることを指定できますが、それはかなり不特定のようです。テストの特定の時点で、例外をスローする必要があり、失敗としてカウントしないようにする必要があると言えるようにしたいと思います。
これは機能しませんか?
BOOST_CHECK_THROW (expression, an_exception_type);
これにより、式が指定された例外タイプをスローした場合にテストに合格するか、そうでない場合に失敗するはずです。「CHECK」とは異なる重大度が必要な場合は、代わりにBOOST_WARN_THROW()
orを使用することもできますBOOST_REQUIRE_THROW()
。ドキュメントを見る
BOOST_CHECK_EXCEPTION を使用して、例外を検証するテスト関数を指定することもできます。