2

Jasmine を使用して、ファクトリ サービスで scope.$on を使用してイベントにバインドするメソッドをスパイする際に問題があります。スパイの代わりに、最初に渡された実際のメソッドが呼び出されます。plinkr を作成しました: http://plnkr.co/edit/2RPwrw?p=preview

ご協力いただきありがとうございます。

4

1 に答える 1

7

これは、コールバックをバインドする方法が原因です。変化する

service.$on('hello', service.method);

service.$on('hello', function() {
  service.method();
});

と言うときは、「で参照されている値をスパイspyOn(service, 'method')で置き換える」と言っています。service.methodただし、元のコードは、イベントがトリガーされたときservice.$onに service.method の値を検索しません。代わりに、サービスが初期化されたときに検索します。したがって、後で指す参照を変更しても効果はありません。service.method

于 2013-04-30T19:10:49.197 に答える