テスト対象の関数 int func_divide1() は、引数として受け取った a, b を使用して、a / b の計算を行って計算結果を戻り値として返します。ただし、b が 0 の場合は -1 を返します。
テスト対象関数 |
|
テストケース test_func_divide1 は、a に 10、b に 0 を設定し、戻り値が -1 であるかどうかを検証しています。
テストケースエディターでの設定例 |
|
このテストケースを実行すると、戻り値として -1 が返され、テストは成功して終了します。
テスト対象の関数 int func_divide2() も、引数として受け取った a, b を使用して、a / b の計算を行って計算結果を戻り値として返します。b が 0 の場合のチェックはしていません。
テスト対象関数 |
|
テストケース test_func_divide2 も、a に 10、b に 0 を設定し、戻り値が -1 であるかどうかを検証しています。
テストケースエディターでの設定例 |
|
このテストケースを実行すると、「実行時例外: 整数型のゼロ除算の例外 [CPPTEST_INT_DIVIDE_BY_ZERO]が発生して、テストは失敗します。
テスト対象の関数 int func_divide3() も、引数として受け取った a, b を使用して、a / b の計算を行って計算結果を戻り値として返します。b が 0 の場合は、logic_errorの例外をthrowします。
テスト対象関数 |
|
テストケース test_func_divide3 も、a に 10、b に 0 を設定し、戻り値が -1 であるかどうかを検証しています。
テストケースエディターでの設定例 |
|
このテストケースを実行すると、"実行時例外: テスト ケースを実行中に標準例外が発生しました: Divided by Zero. "が発生して、テストは失敗します。
上記のように複数のテストケースがあり、
test_func_divide1 は成功 test_func_divide2 はゼロによる除算の実行時エラー test_func_divide3 は例外をthrow
と、2番目と3番目のテストケースではエラーが発生することがわかっている場合は、テストスイートにテストケースを登録する際に、CPPTEST_TEST() の代わりに CPPTEST_TEST_ERROR() や CPPTEST_TEST_EXCEPTION() を使用することで、単体テスト実行時にエラーとならないようにすることが可能です。 テストケース画面の一番上にあるテストケース名の右の(TestSuite_func_divide_cpp.cpp)のリンクをクリックすると、テストスイートのソースコード画面が開きます。そこでテストケースが登録されている箇所を探します。
テストケースの登録例(修正前) |
|
これを以下のように、test_func_divide2 は CPPTEST_TEST_ERROR() を使用するように、test_func_divide3() は CPPTEST_TEST_EXCEPTION() を使用するように、修正します。
テストケースの登録例(修正後) |
|