e2eテスト時のMockについて

e2eのテスト時にlocalStorageやHttpClientをMockしたいのですが、
そもそも出来たりするのでしょうか?

詳しい方いましたら、ぜひ教えてください!

3 Likes

e2e用のAngular CLIのプロジェクトで environments/environmentをe2e用のものに書き換えて、その設定値を元に条件分岐すれば可能だと思います。

in-memory-web-apiのユースケースが近そうです。英語ですが参考になれば。


https://angular.jp/tutorial/toh-pt6#データサーバーをシミュレートする

しかし個人的な意見では、根本的にe2eテスト(あるいはインテグレーションテスト)はクライアントサイドとサーバーサイドをセットで動かしてデータの整合性や永続化のテストをすることも大きな役目ですので、サーバーサイドへリクエストを送らないようにするe2eテストにはそれほど価値がないのではないかと思っています。

意見ありがとうございます。
自分の方でもいろいろ調べて、in-memory-web-apiで実現出来そうだなと考えていたところでした。

ただ、e2eテストはクライアント、サーバをセットで動かしてテストするものというのを聞いて、確かにそうだなと思ったので、in-memory-web-apiを使用するか、テストサーバを用意するかどうかは検討してみようと思います。

やりたいことが、UIのIntegration Testingなのか、本当にEnd-to-End Testingなのかははっきりさせておいたほうが、使うツールや方法論に迷いがなくなって良いと思います。これらは分けて考えてもよいと思います。

angular-cliにe2eのコマンドがあるので、それのことを指して話していましたが、やりたいことはUIのIntegration testです。

今回の要件としては、ブラウザで実際に動かし、スクリーンショットも合わせて撮る自動テストをやりたく、それによって動作検証と表示崩れなどのチェックが出来ればと思っています。
(結合テストの経験が少なく、試行錯誤しながら進めてる状態です…)

1 Like

だとすればデータ部分についてはモックでよさそうですね!

ありがとうございます!
今回はデータ部分はモックにして、テスト走らせようと思います!