Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Util#checkDateFormat メソッドは static メソッドです。今回はこの Util#checkDateFormat をモックにします。
Util#checkDateFormat では入力された文字列が日付のフォーマット “yyyy/MM/dd” に一致するかをチェックします。
一致する場合は、true を返却し、一致しない場合は false を返却します。

Image Added

・テストメソッド作成

1.ソースコードペインで Order#setDate メソッドを開きます。

2.単体テストアシスタントビューで Image Addedをクリックします。

Image Added

3.setDate(String) メソッドの引数を入力します。次のコードの “” “12345” に変更します。

変更前
変更後
String date = "";String date = "12345";

4.アサーションを追加します。

追加するアサーション
assertEquals("", underTest.getDate());

【補足】

テストデータの “12345” Util#checkDateFormat でチェックする日付フォーマット (yyyy/MM/dd) とは一致せず false が戻されます。
テスト対象の Order#setDate メソッドでは Util#checkDateFormat の戻り値が false の場合が変数 date に空文字を格納するため、アサーションは Order#getDate メソッドの戻り値が空文字であることを期待します。

5.単体テストアシスタントビューで Image Added をクリックし、テストケースが成功することを確認します。

Image Added


・テストメソッド作成

static なメソッドである Util#checkDateFormat をモックにして必ず “true” を戻すようなテストを実行します。

1.単体テストアシスタントビューの実行フローからsetDate(String) > Util.checkDateFormat(String) を右クリックし、 Image Addedをクリックします。

Image Added

2.追加されたモックを変更します。

追加されたモック

boolean checkDateFormatResult = false; // UTA: デフォルト値

doReturn(checkDateFormatResult).when(Util.class);

必ず true を返すように変更します。

変更後のモック

boolean checkDateFormatResult = true; // UTA: デフォルト値

doReturn(checkDateFormatResult).when(Util.class);

3.単体テストアシスタントビューで Image Addedをクリックし、テストケースが失敗することを確認します。

Image Added

【補足】

テスト対象の Order#setDate メソッドでは Util#checkDateFormat の戻り値が trueの場合が変数 date に渡されたデータを格納するため、date にテストデータの “12345” が格納されます。
アサーションは Order#getDate メソッドの戻り値が空文字であることを期待しますが実際には “12345” が格納されているためアサーションエラーが発生してテストケースが失敗しました。

4.単体テストアシスタントビューで Util#checkDateFormat がモックに置き換わったことを確認します。

Image Added