0

私は非常に単純な Mocha テスト (私が何十回も見たコードのコピー) を持っています。 ここに画像の説明を入力

実行すると、angular mocks は注入されたリソースとそのすべての依存関係を正常にロードし、9 行目に正常に到達したように見えます。 $rootScope.new() 関数にステップインすると、catch ブロックに直接移動します。 ここに画像の説明を入力

「未定義は関数ではありません」としてeを使用

ここに画像の説明を入力

ここで何が起こっているのか理解できません。変数 blockFns[i] は関数であるか、少なくとも Chrome デバッガーは関数であると言っています。したがって、injector.invoke の呼び出しが失敗する理由がわかりません。これがスタックトレースです。 ここに画像の説明を入力

4

1 に答える 1

1

次のよう$rootScopeに呼び出す前に注入する必要があります。$rootScope.$new()

var $rootScope;
beforeEach(inject(function($injector){
  $rootScope = $injector.get('$rootScope');
}));

更新しました

$rootScope.$new()実際の問題は、代わりにすべきであるということでし$rootScope.new()た。

于 2014-11-26T21:38:08.093 に答える