ここでは単体テストアシスタントを利用してテスト対象のメソッドに対して、カバレッジが計測されていないコードを検出してテストケースを追加する方法を確認します。
・機能を有効化
本章で使用する機能を有効化します。
1.メニューの [Parasoft] > [設定] を選択して設定ダイアログを開きます。
2.[Parasoft] > [単体テスト アシスタント] を選択します。
3.[推奨] で “カバーされていないコード” チェックボックスを有効化します。(デフォルトでは無効化されています。)
・テストメソッド作成
Util#checkUserData メソッドをテストするメソッドを作成します。
1.ソースコードペインで Util#checkUserData メソッドを選択します。
2.単体テストアシスタントビューで をクリックします。
3.テストメソッドテンプレートが UTA プロジェクトの tests フォルダ内に作成されます。
4.作成されたテストメソッドテンプレートの内容を確認します。(テストメソッド名は連番で付けられるため本チュートリアルの実施順によって異なります。)
...
…テストメソッド
...
…テストインスタンスの生成
...
User user = null; // UTA: デフォルト値
...
5.checkUserData(User) メソッドの引数を入力します。次のコードを変更します。
...
User user = new User();
...
6.アサーションのコメントアウト外し、コードを有効化します。
...
7.変更後のファイルを保存し、プロジェクトのビルドが正常に行われることを確認します。
・テスト実行と結果確認
作成したテストメソッドを実行します。
1.ソースコードペインでUtilTest#testCheckUserData メソッドを選択し、単体テストアシスタントビューで をクリックします。
2.実行後、推奨ビューに以下の推奨事項が表示されます。
テストメソッドの実行により、テスト対象 Util#checkUserData メソッドにカバーされていないコードがあることが指摘されました。
計測したカバレッジ (33%) :
ラインの色はそれぞれ以下のことを意味しています。
...
今回作成したテストメソッドは Util#getUserId メソッドの戻り値が null となるテストデータであり、47 行目で return文が実行されそれ以降の行は実行されていないことがわかります。
・テストメソッド追加
推奨ビューを使用してテストメソッドを追加します。
1.推奨事項ビューの をクリックして UtilTest#testCheckUserData テストメソッドを複製します。
2.生成されたテストメソッド (UtilTest#testCheckUserData2 メソッド) を変更します。
(テストメソッド名は連番で付けられるため本チュートリアルの実施順によって異なります。)
...
User user = new User();
...
►
...
User user = new User();
user.setName("name");
user.setUserId("userid");
...
3.変更後のファイルを保存し、プロジェクトのビルドが正常に行われることを確認します。
4.単体テストアシスタントビューの で作成した2つのテストメソッドを実行します。
5.実行後カバレッジを確認します。
計測したカバレッジ(58%) :
6.推奨事項ビューを確認します。
同様の指摘が表示されている事が確認できます。テストメソッド追加の手順を繰り返し、すべてのコードをカバーすると、この指摘は表示されなくなります。
・パラメータライズされたテストの実施
ここでは単体テストアシスタントを利用してテスト対象のメソッドに対して、複数パターンの入力値を一回の実行で検証するためパラメータライズドされたテストメソッドの作成から実行までを確認します。
・ライブラリ選択
単体テストアシスタントが作成するパラメータライズドされたテストメソッドの生成には以下のいずれかのライブラリを利用します。
①JUnitParams
②Junit4Parameterized
本チュートリアルでは “①JUnitParams” を利用します。以下の手順でライブラリが正しく選択されていることを確認してください。
1.メニューの [Parasoft] > [設定] を選択して設定ダイアログを開きます。
2.[Parasoft] > [単体テスト アシスタント] を選択します。
3.パラメータライズされたテストタイプ でJUnitParams (CSV データ入力に必要) を選択します。
※この先の手順で行う CSV ファイルベースのテストケースの生成は JUnitParams だけでサポートしており、Junit4Parameterized を選択している場合はご利用いただけませんのでご注意ください。
Child pages (Children Display) |
---|