私はこの 1 週間ほど Angular をいじって、その内外を学んでいます。私は今、E2E テストを行うためにアプリを再構築する最善の方法を見つけようとしているところです。それは、アプリが自立するのではなく、既存のサイトに組み込まれることを前提としています。
私の理解では、テストの前にアプリをロードしてブートストラップするために、何かを介して自分自身を指す必要index.html
があるため、角度シードプロジェクトから処理する方法に問題があります。Karma
scenarios.js
現在のマークアップはindex.html
、サーバーによってまとめられるときに、ページのより大きな HTML 構造に挿入する必要があります。最上位の Angular テンプレートに対して実行する必要がある追加の前処理はありませんが、これはテスト プロセスをかなり複雑にするのに十分なようです。
これにより、E2E テストを有効にするために私が知る限り、3 つのオプションが残ります。
1) コード全体を複製してindex.html
、テスト用の完全なモックアップとして保持します。
2) 単一の角度ルートを使用しngView
て、トップ レベルのビュー テンプレートにアクセスします (テストの目的をタグとタグindex.html
よりも少し減らします) 。<ng-view></ng-view>
<script>
3) 高レベルのテストには Selenium を折りたたんでそのまま使用する
最初のオプションは保守性の問題を引き起こします。2 番目のオプションは、アプリケーションの外部のあらゆる側面のテスト可能性を制限するため、望ましくありません<ng-view>
。今は問題ありませんが、アプリが成長するにつれて問題になる可能性があります。そして 3 つ目は、Selenium が Angular アプリで多くの頭痛の種を生み出すと聞いたことがありますが、これは専用の Angular E2E テスト ツールを使用して回避するのが最善です。
では、この状況は通常どのように処理されるのでしょうか。