...
Userクラスは以下の要素にそれぞれの getter/setter メソッドを持つ構成です。
/** * ユーザー名を保存します。 */ private String name; /** * ユーザーIDを保存します。 */ private String userId; /** * ユーザーの住所を保存します。 */ private String address; /** * ユーザーのメールアドレスを保存します。 */ private String email; /** * ユーザーの電話番号を保存します。 */ private String phone; |
2.ソースコードペインで Util#checkUserData(User) メソッドを選択し、単体テストアシスタントビューで をクリックします。
...
生成された testCheckUserData() を確認します。
@Test @Parameters(method = "testCheckUserData_Parameters") | @Parameters アノテーションでテストデータを取得するメソッドを定義 |
public void testCheckUserData( String getAddressResult, String getEmailResult, String getNameResult, String getPhoneResult, String getUserIdResult) throws Throwable { | テストメソッド |
Util underTest = new Util(); | テストインスタンスの生成 |
User user = mock(User.class); when(user.getAddress()).thenReturn(getAddressResult); when(user.getEmail()).thenReturn(getEmailResult); when(user.getName()).thenReturn(getNameResult); when(user.getPhone()).thenReturn(getPhoneResult); when(user.getUserId()).thenReturn(getUserIdResult); | checkUserDataの引数 User のモックオブジェクト呼び出し |
boolean result = underTest.checkUserData(user); | getItemDB メソッドの呼び出し |
// assertEquals(expected, result); | getItemDB の戻り値のチェック用アサーションテンプレート |
} |
∘ testCheckUserData_Parameters() の確認
生成された testCheckUserData_Parameters() を確認します。
@SuppressWarnings("unused") | |
private static Object[][] testCheckUserData_Parameters() throws Throwable { | データメソッド |
// パラメータ: getAddressResult={0}, getEmailResult={1}, getNameResult={2}, getPhoneResult={3}, getUserIdResult={4} | |
return new Object[][] { { "", "", " ", null, "01234567890…" }}; | テストデータを返却するコード |
} |
・テストデータ編集
作成されたテストデータメソッド、テストメソッドにはアサーション情報が定義されていないため、テストケースごとに期待値となるデータを追加するための設定を行います。
...
UtilParameterizedTest#testCheckUserData() の引数に期待値用の変数を追加します。
変更前 | |
public void testCheckUserData( String getAddressResult, String getEmailResult, String getNameResult, String getPhoneResult, | |
String getUserIdResult) throws Throwable { | |
▼ | |
変更後 | |
public void testCheckUserData( String getAddressResult, String getEmailResult, String getNameResult, String getPhoneResult, String getUserIdResult, | |
boolean expected | Boolean 型の引数を追加 |
) throws Throwable { |
変更後のファイルを保存し、プロジェクトのビルドが正常に行われることを確認します。
∘ testCheckUserData_Parameters () の編集
テストデータを変更します。
変更前 (改行済み) | |
return new Object[][] { { "", "", " ", null, "01234567890…" } }; | |
▼ | |
変更後 | |
return new Object[][] { { "", "", " ", null, "01234567890…", false}, {"address", "email", "name", "phone", "userId", true} }; | …boolean型の引数を追加 …新規テストケースを追加 |
・テスト実行と結果確認
作成したテストメソッドを実行します。
ソースコードペインでUtilParameterizedTest#testCheckUserData メソッドを選択し、単体テストアシスタントビューで を押下します。
...
単体テストアシスタントビューと変数ビューを使って、実行したテストケースと入力されたテストデータが正しく渡されていることを確認します。
単体テストアシスタントビューで任意のテストケースを展開し、UtilParameterizedTest.testCheckUserData (String,String,String,String,String,boolean) を選択すると
変数タブにテストデータメソッドから取得したテストデータの値が表示されます。
更にテストケースの実行フローを展開するとモックに置き換わった User クラスの各メソッドが呼び出されたときに戻されるデータを確認することができます。