Jtest は Mockito と PowerMock をサポートしています。
...
ここではコンストラクターをモックにする方法を確認います。
・事前準備
PowerMock を利用できるように設定します。
- メニューの [Parasoft] > [設定] を選択して設定ダイアログを開きます。
- .[Parasoft] > [単体テスト アシスタント] > [モック] を選択します。
- 以下の設定になっていることを確認します。※赤字が設定する値となります
...
● フレームワークで “PowerMock with Mockito” ラジオボタン : ON
・テスト対象メソッド確認
Order#setDate メソッドをテストするメソッドを作成します。
Order#setDate メソッドは Util#checkDateFormat メソッドを呼び出します。
...
Util#checkDateFormat メソッドは static メソッドです。今回はこの Util#checkDateFormat をモックにします。
Util#checkDateFormat では入力された文字列が日付のフォーマット “yyyy/MM/dd” に一致するかをチェックします。
一致する場合は、true を返却し、一致しない場合は false を返却します。
・テストメソッド作成
- ソースコードペインで Order#setDate メソッドを開きます。
- 単体テストアシスタントビューで をクリックします。
setDate(String) メソッドの引数を入力します。次のコードの “” を “12345” に変更します。
Code Block theme Eclipse 変更前 変更後 String date = ""; ⇒ String date = "12345";
アサーションを追加します。
Code Block theme Eclipse 追加するアサーション assertEquals("", underTest.getDate());
【補足】
テストデータの “12345” は Util#checkDateFormat でチェックする日付フォーマット (yyyy/MM/dd) とは一致せず false が戻されます。
テスト対象の Order#setDate メソッドでは Util#checkDateFormat の戻り値が false の場合が変数 date に空文字を格納するため、アサーションは Order#getDate メソッドの戻り値が空文字であることを期待します。- 単体テストアシスタントビューで をクリックし、テストケースが成功することを確認します。
・staticメソッドをモックにする
static なメソッドである Util#checkDateFormat をモックにして必ず “true” を戻すようなテストを実行します。
...