Jasmine を使用して、ファクトリ サービスで scope.$on を使用してイベントにバインドするメソッドをスパイする際に問題があります。スパイの代わりに、最初に渡された実際のメソッドが呼び出されます。plinkr を作成しました: http://plnkr.co/edit/2RPwrw?p=preview
ご協力いただきありがとうございます。
Jasmine を使用して、ファクトリ サービスで scope.$on を使用してイベントにバインドするメソッドをスパイする際に問題があります。スパイの代わりに、最初に渡された実際のメソッドが呼び出されます。plinkr を作成しました: http://plnkr.co/edit/2RPwrw?p=preview
ご協力いただきありがとうございます。
これは、コールバックをバインドする方法が原因です。変化する
service.$on('hello', service.method);
に
service.$on('hello', function() {
service.method();
});
と言うときは、「で参照されている値をスパイspyOn(service, 'method')
で置き換える」と言っています。service.method
ただし、元のコードは、イベントがトリガーされたときservice.$on
に service.method の値を検索しません。代わりに、サービスが初期化されたときに検索します。したがって、後で指す参照を変更しても効果はありません。service.method