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 メソッドを選択し、単体テストアシスタントビューで をクリックします。

...

   一連のテストを実行するための制限時間(ミリ秒単位)を指定します。
   制限時間を超えるとテスト実行が停止し、テストは失敗します。

設定画面例)

4.設定画面で “OK” ボタンを押下します。

5.UTAプロジェクトのtestsフォルダにjavaとUtilParameterizedTest_testCheckUserData_parameters.csvが作成されたことを確認します。

Image Added

6.作成されたテストメソッドテンプレートの内容を確認します。(テストメソッド名は連番で付けられるため本チュートリアルの実施順によって異なります。)

@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 クラスの全要素数分実施。


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

7.作成された CSV ファイルの内容を確認します。

Image Added

ファイルの構成は以下の通りです。

  • 1行目:テストデータ項目名
  • 24行目:自動で作成されたテストデータ

テストケースの生成時に、パラメータセットの最大数を ‘3’ に設定したため 3 テストケース分のテストデータが自動で作成されました。

1行目の項目名はUtilParameterizedTest#testCheckUserData メソッドの引数名と紐づきます。


・テストデータ編集

作成されたテストデータ、テストメソッドテンプレートにはアサーション情報が定義されていないため、テストケースごとに期待値となるデータを追加するための設定を行います。

1.CSV ファイルに期待値用の項目を追加します。

   CSV ファイルを Excel 等で開き、F(6項目目) に以下のデータ項目名 ‘expected’ を追加します。

   Image Added

2.CSV ファイルに期待値データとテストデータを登録します。

  手順 1 で追加した expected 列にテストデータを追加します。

  2~4行目のテストケースではいずれかの項目に <NULL> が設定されている場合 Util#checkUserData の戻り値は false になります。

  下記のテストデータでは2,4行目が false 3 行目は true を入力します。

  Image Added

  任意のテストケースを追加します。

  5行目に AE(15列目) 全ての項目に何らかの文字列を入力し、F列 には true を入力して任意のテストケースを追加します。

  Image Added

   変更した CSV ファイルを保存します。

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


・テスト実行と結果確認

作成したテストメソッドを実行します。
ソースコードペインでUtilParameterizedTes#testCheckUserData メソッドを選択し、単体テストアシスタントビューで  Image Addedを押下します。

Image Added

実行後、JUnit ビューで 4 テストケースが実行されていることを確認します。

Image Added

単体テストアシスタントビューと変数ビューを使って、実行したテストケースと入力されたテストデータが正しく渡されていることを確認します。
単体テストアシスタントビューで任意のテストケースを展開し、
UtilParameterized.testCheckUserData (String,String,String,String,String,boolean) を選択すると変数タブにCSVファイルから取得したテストデータの値が表示されます。

Image Added

更にテストケースの実行フローを展開するとモックに置き換わった User クラスの各メソッドが呼び出されたときに戻されるデータを確認することができます。

Image Added