08.期待結果の再定義
ここではWebアプリケーションに改修を行い、見た目が変化した場合の対応方法を示します。
期待結果の再定義
テスト失敗結果の確認と分析
Webアプリケーションを変更して見た目が変わった状態でテストを回すと、当然ですが差分が検出されてテスト失敗となってしまいます。Webアプリケーションへの変更の種別によってその後のテスト修正内容が異なります。おおよそ次のパターンが考えられます。
- CSSを変更するなど、見た目が変化したのみでテストケースの流れに影響が無い
- 表示するパーツが増えた、表示ロジックを変更したなど、テストケースの流れに影響がある
それぞれについての対応方法を示します。
テストケースに影響が無い場合
テストケースに影響が無い場合の対応フローは以下の様になります。
- RUN_TEST モードで実行します。
差分結果から、検出された差分がアプリ変更の内容と比較し正しいかどうかを確認します。 - SET_EXPECTED モードで該当のテストクラスのみを実行し、期待値となるスクリーンショット画像を更新します。
このケースではテストの内容に修正が必要ではありません。SET_EXPECTEDモードを再度実行することで、新しいスクリーンショット画像が撮影され期待値の情報が更新されます。
テストケースに影響がある場合
テストケースに影響がある場合の対応フローは以下の様になります。
- テストコードを修正します。
- TAKE_SCREENSHOT モードで該当のテストクラスのみを実行し、修正したテストコードや取得されるスクリーンショットが正しいことを確認します。
- SET_EXPECTED モードで該当のテストクラスのみを実行し、期待値となるスクリーンショット画像を更新します。
このケースではテストの内容に修正が必要であり、撮影されるスクリーンショットの確認も必要です。
TAKE_SCREENSHOTモードはスクリーンショットを撮影するのみのモードです。期待値の更新もアサーションも必要無い時に利用します。
テスト期待値更新時のTips
テストの期待値を保存している currentExpectedIds.json はテストメソッド毎に期待値の情報を保存していますが、ライブラリはJUnitの Parameterized tests の仕様によりテストの最小実行単位はテストクラス毎となります。
あるテストメソッドのみ期待値を更新したい場合はテストクラス内の他のテストメソッドに @Ignore を一時的に指定する等をする必要があります。
次のステップ ⇒ 09.モバイルでのテスト