Angular UI-Bootstrap ダイアログ ディレクティブを使用するコントローラーを単体テストしようとしていますが、エラーが発生しています: Argument 'directive' is requiredエラーです。
ui-bootstrap.min.js
これは、Testacular 構成にファイルを含めるとすぐに実際に発生します。
コントローラーは次のように定義されます。
angular.module('xFormsEntries')
.controller('xFormsEntryListCtrl', function ($scope, $dialog, Form, FormEntry, FormField) {...
単体テストは次のとおりです。
describe('xForms Controllers', function() {
beforeEach(function() {
this.addMatchers({
toEqualData: function(expected) {
return angular.equals(this.actual, expected);
}
});
});
beforeEach(module('xFormsServices'));
beforeEach(module('xFormsEntries'));
describe('xFormsEntryListCtrl', function() {
var scope, ctrl, $httpBackend, $dialog;
var formData = {formId: 1, name: 'FormName'};
apiURL = ''; // Override the global API URL
beforeEach(inject(function(_$httpBackend_, $rootScope, $controller, _$dialog_) {
// Arrange
$httpBackend = _$httpBackend_;
$httpBackend.expectGET('/xFormsAPI/Form').respond(formData);
$dialog = _$dialog_;
scope = $rootScope.$new();
scope.formId = 1;
ctrl = $controller('xFormsEntryListCtrl', {$scope: scope});
}));
it('should fetch the form from the server', function () {
expect(scope.formModel).toBe(undefined);
$httpBackend.flush();
expect(scope.formModel).toEqualData(formData);
});
});
UI-Bootstrap を統合する前は、すべてのテストに合格していました。
beforeEach(module('ui.bootstrap'));
やその他のバリエーションをテストに追加しようとしましたが、うまくいきませんでした。
この作業を行うために欠けている魔法は何ですか?