私は比較的Angularに慣れていて、アプリケーションをコンポーネントアーキテクチャで作成し始めました。 Angular docsを調べるときは、模擬方法$componentController
でコンポーネントをテストすることをお勧めします。
しかし、ディレクティブがどのように伝統的に1.5より前の角度でテストされたかを見てみると、$compile
サービスを使用して実際にディレクティブテンプレートを作成するのが望ましい方法のようです。 $compile
を使用すると、テンプレートロジックとコントローラロジックについてアサーションを作成できます。 $componentController
メソッドではコントローラロジックをテストすることしかできませんが、ほとんどの複雑さがテンプレートやサービスに存在するので、実際にはそれほど有用ではありません。
誰かが近代的なベストプラクティスについていくつか光を当てることができますか?私には$compile
を使用する方が意味がありますので、テンプレートもテストできます。しかしAngularのドキュメントではこれをまったく言及せず、代わりに$componentController
をお勧めしますか?
コメントをつけて回答すると、意見が増えるかもしれません。私はあなたが頭の上の爪に当たったと思っています、そして、両者の違いに関するあなたの結論。コンポーネントの導入に先立って、彼らはDOM操作を行うためにディレクティブを使用すると言いました(したがって、テストでは$ compileを使用します)。それはまだケースです、私は部品を持っていると思います。 DOMが正しく操作されたことをテストする必要がある場合は、ディレクティブと$ compileを使用する必要があります。私は現在ほとんどコンポーネントを作成する傾向があり、DOMレベルテストでは扱いにくく、ミッションクリティカルなロジックではありません。 –
AngularJSからAngularへの移行を計画している場合を除いて、(特にそうではありませんが)別の角度にタグ付けするべきではありません(特に[angle docs](https://angular.io/) – crashmstr
こんにちは、[私の答え](https://stackoverflow.com/a/44165119/2545680)助けてくれましたか?不明なことがありますか? –