0

私はAngularJSを初めて使用しています。私が理解しているところから、依存性注入の全体のポイントは、依存性を後で "類似"の依存性と簡単に入れ替えることができるようにすることであり、コードは同じように動作します。 「似ている」とは、通常、依存関係がある種のインタフェースを実装することを意味します。AngularJSの注射可能なサービスのためのインターフェイス

コントローラを作成していて、同僚がコントローラで使用するサービスを作成している場合、彼が私のために作っているサービスが、必要なすべてのものを持っていることを確認するにはどうすればいいですか?伝統的なOO言語では、彼のサービスはインタフェースを実装するクラスになり、特定のメソッドを実装する必要があります。しかし、これはangularJSでどのようにすることができますか?サービスに必要なすべてのメソッドのプロパティが含まれていて、それらのプロパティすべての__proto__Function.prototypeであることを確認する必要がありますか?これらのメソッドが返すものを確認するために、モックオブジェクトを呼び出して、返されたオブジェクトを検査していますか? これを行うより良い方法がありますか?

答えて

0

これはDIの機能かもしれませんが、要点は、ウィンドウのようないくつかの魔法のようなグローバルにステージングされるのではなく、明示的に依存関係がどこから来ているのかを確認できることです。

JavaScriptには暗黙的にインターフェイスを強制する方法はありません。あなたの同僚は、機能とプロパティが添付されたオブジェクトを提供するサービスまたはファクトリを作成します。ここでも、これらの関数は必要なものを返すことができ、返すものを強制する手段はありません。

あなたの同僚が期待どおりの結果を返すようにしたい場合は、ユニットテストを作成してngMockを使用することをお勧めします。

さらに、prototypeに接続し、__proto__に接続しないでください。

関連する問題