2016-04-19 14 views
1

次の単体テストでモックスコープオブジェクトでコントローラをインスタンス化するには、コントローラがグローバルネームスペースで使用できることを確認する必要があります。コントローラの決定方法は、angularJSのグローバルネームプスで利用可能です

describe('testCtrl', function(){ 

    it('should create "phones" model with 3 phones', function() { 
    var scope = {}, 
     ctrl = new testCtrl(scope); 

    expect(scope.phones.length).toBe(3); 
    }); 

}); 

ただし、コントローラを特定する方法は、angularJSのグローバルネームスペースで利用できますか?

+0

はtypeof演算testCtrl =未定義、実際にコントローラを使用すると、ドキュメントを助けるだけでjavascript関数のテストは非常に奇妙であるように思わ –

+0

... – Qwertiy

+0

です:https://docs.angularjs.org/guide/unitテスト –

答えて

2

単純な例では、ルートモジュールappのコントローラはグローバル名前空間にあり、依存モジュールproductsのコントローラは非グローバルコントローラでなければなりません。 !

angular.module('app', [ 'products', ... ]);

+0

では、アプリケーション全体の "app"モジュール内の "products"コントローラにアクセスできますが、アプリケーションの "app"モジュールの先頭に宣言する必要があります。 –

関連する問題