Versions Compared

Key

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

...

  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 expectedBoolean 型の引数を追加
) 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 クラスの各メソッドが呼び出されたときに戻されるデータを確認することができます。

Image Added