3

Karma、Mocha、Chai、CoffeeScript スタックで単体テストを行っており、角度スコープである変数をテストしようとしています。

このようなものはいいでしょうが、うまくいきません:

 scope = $rootScope.$new()
 expect(scope).to.be.an.instanceOf $rootScope

$rootScope::との$rootScope.$new()引数として、考えられるすべてのバリアントを既に試しましたinstanceOf

これを行う方法はありますか?


現在、私はこれを行っています:

expect(scope.$id).to.exist 

これは理想的ではありません。


答え:

これがコーヒー/モカ/チャイの「null」の答えです

 expect(scope.constructor.name).to.equal 'Scope'
4

2 に答える 2

2

アクセスできる場合は$rootScope、次のようなことができます。

var $scope = $rootScope.$new();
expect($scope.constructor).toEqual($rootScope.constructor);

これは、角度の縮小バージョンでも問題なく機能します。

何かがScopeオブジェクトでない場合は、次のように変換できます。

// In this case `context` might be a scope object or just a POJO.
if (context.constructor !== $rootScope.constructor) {
    context = angular.extend($rootScope.$new(), context);
}
于 2015-08-28T20:08:10.057 に答える