Versions Compared

Key

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

...

Util#checkUserData メソッドは User クラスの引数を持つメソッドのためテストの実行には User クラスを構成する要素をテストデータとして用意する必要があります。
Userクラスは以下の要素にそれぞれの getter/setter メソッドを持つ構成です。

/**
* ユーザー名を保存します。
 */
private String name;


/**
 * ユーザーIDを保存します。
 */
private String userId;


/**
 * ユーザーの住所を保存します。
 */
private String address;


/**
 * ユーザーのメールアドレスを保存します。
 */
private String email;


/**
 * ユーザーの電話番号を保存します。
 */
private String phone;


2.ソースコードペインで Util#checkUserData メソッドを選択し、単体テストアシスタントビューで をクリックします。

...

@Test
@FileParameters(value = "classpath:jp/co/tmx/

UtilParameterizedTest_testCheckUserData_parameters.csv", mapper = CsvWithHeaderMapper.class, encoding = "UTF-8")
@FileParameters アノテーションによるテストデータ定義用CSVファイル指定

public void testCheckUserData(
 @Nullable(nullIdentifier = "<NULL>") String getAddressResult,
 @Nullable(nullIdentifier = "<NULL>") String getEmailResult,
 @Nullable(nullIdentifier = "<NULL>") String getNameResult,
 @Nullable(nullIdentifier = "<NULL>") String getPhoneResult,
 @Nullable(nullIdentifier = "<NULL>") String getUserIdResult

) throws Throwable {
CSVファイルのデータ項目に紐づいたデータを取り込むためのパラメータ

 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);

 boolean result = underTest.checkUserData(user);

 // assertEquals(expected, result);

…引数の User クラスをモック化クラスをモック化

User#getAddress 実行時に戻り値としてCSV から取得したデータを格納。

以降、User クラスの全要素数分実施。


…テスト対象メソッドの呼び出しと戻り値の格納

...

3.UtilParameterizedTest#testCheckUserData メソッドに期待値用の引数を追加します。

   メソッド引数を以下のように変更します。

変更前

public void testCheckUserData(

 @Nullable(nullIdentifier = "<NULL>") String getAddressResult,
 @Nullable(nullIdentifier = "<NULL>") String getEmailResult,
 @Nullable(nullIdentifier = "<NULL>") String getNameResult,
 @Nullable(nullIdentifier = "<NULL>") String getPhoneResult,
 @Nullable(nullIdentifier = "<NULL>") String getUserIdResult

) throws Throwable {


変更後

public void testCheckUserData(

 @Nullable(nullIdentifier = "<NULL>") String getAddressResult,
 @Nullable(nullIdentifier = "<NULL>") String getEmailResult,
 @Nullable(nullIdentifier = "<NULL>") String getNameResult,
 @Nullable(nullIdentifier = "<NULL>") String getPhoneResult,

 @Nullable(nullIdentifier = "<NULL>") String getUserIdResult,

 boolean expectedboolean 型の引数をCSVファイルに追加した項目名と同じ変数名で追加
) throws Throwable {


4.UtilParameterizedTest#testCheckUserData メソッドのアサーションを有効化

   UtilParameterizedTest#testCheckUserData メソッドでコメントアウトされているアサーションを有効化します。

変更前
// assertEquals(expected, result);
変更後
assertEquals(expected, result);

5.変更したテストクラスを保存し、プロジェクトのビルドが正常に行われることを確認します。

...