...
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 expected | … boolean 型の引数をCSVファイルに追加した項目名と同じ変数名で追加 |
) throws Throwable { |
|
4.UtilParameterizedTest#testCheckUserData メソッドのアサーションを有効化
UtilParameterizedTest#testCheckUserData メソッドでコメントアウトされているアサーションを有効化します。
変更前 |
// assertEquals(expected, result); |
▼ |
変更後 |
assertEquals(expected, result); |
5.変更したテストクラスを保存し、プロジェクトのビルドが正常に行われることを確認します。
...