発電機を使用していyeoman angular-require
ます。
https://github.com/aaronallport/generator-angular-require
私のコントローラーの使用の 1 つng-table
。このコントローラーを単体テストすると、エラーが発生します: Unknown provider: ngTableProvider <- ngTable
。
ng-table
問題なく webapp 内で使用できます。単体テストケース内でのみ、モジュールとして挿入または追加できません。手伝ってください。
以下は私のセットアップです:
ng-table は、requirejs 構成パス内で利用できます。
ブートストラップ セクションにも追加されます。
define(['angular', 'ng-table', 'controllers/main'], 関数 (angular, ngTable, MainCtrl,) { return angular.module('myApp', [ 'ngTable', 'myApp.controllers.MainCtrl ', 'ngCookies', 'ngResource', 'ngSanitize', 'ngRoute' ]).config......
コントローラ:
define(['angular'], function (angular) {
'use strict';
angular.module('myApp.controllers.MainCtrl', [])
.controller('MainCtrl', function ($scope, ngTableParams) {
$scope.awesomeThings = [
'HTML5 Boilerplate',
'AngularJS',
'Karma'
];
$scope.tableParams = new ngTableParams({
page: 1,
count: 5
}, {
total: data.length,
getData: function($defer, params) {
$defer.resolve(data.slice((params.page() - 1) * params.count(), params.page() * params.count()));
}
});
});
});
TEST SETUP:
ng-table
requirejs 構成パス内で使用できます。
mainSpec ファイル:
define(['angular', 'angular-mocks', 'ng-table', 'app'], function(angular, mocks, ngTable, app) {
'use strict';
describe('Controller: MainCtrl', function () {
// load the controller's module
beforeEach(module('scottsApp.controllers.MainCtrl'));
//Not sure how to inject ngTable
//tried beforeEach(module('ngTableParams'));
//tried beforeEach(module('ngTable'));
//tried beforeEach(inject(function () {}));
//Nothing is working....
var MainCtrl,
scope;
// Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $rootScope) {
scope = $rootScope.$new();
MainCtrl = $controller('MainCtrl', {
$scope: scope
});
}));
it('should attach a list of awesomeThings to the scope to check controller load', function () {
expect(scope.awesomeThings.length).toBe(3);
});
});
});