テスト目的で、Web アプリが実行時に持つサービスの 1 つを置き換えたいと考えています。一部のローカル環境では利用できない外部サービスに接続するサービスがあり、コマンドを実行してモックに置き換えたいだけです。
以下を呼び出すことで、実行時に AngularJS から任意のサービスを取得できることがわかりました。
> angular.element('html').injector().get('myService')
しかし、その「myService」を別のものに置き換える方法があるかどうか知りたいです。
「myService」を公開する「myServiceWrapper」を作成すると、次のようにして簡単に置き換えることができることを知っています。
> angular.element('html').injector().get('myServiceWrapper').myService = new Whatever();
しかし、すでに動作しているアプリケーションに変更を加えるのは避けたいと思います。