によってjasmineでテストされたコントローラでモジュールを利用できるようにするResharper 9.2を使用してPhantomJs経由でジャスミンを使用してコントローラを正常にテストできます。テストランナーとして。Resharper
私はhttps://blogs.endjin.com/2014/09/unit-testing-angularjs-with-visual-studio-resharper-and-teamcity/の指示に従ってResharperをセットアップしました。
これは働いていた:私はそれが依存するモジュールを指定いけない場合、私はコントローラのテストを実行することができます
コントローラー:
var moduleName;
(function (moduleName) {
'use strict';
var testableController = (function() {
function testableController($scope) {
var _this = this;
this.$scope = $scope;
$scope.title = "Welcome";
}
testableController.className = 'testableController';
return testableController;
}());
moduleName.testableController = testableController;
})(moduleName || (moduleName = {}));
specファイルはこの
///<reference path="~/Scripts/jasmine/jasmine.js"/>
///<reference path="~/Scripts/jasmine/angular.js"/>
///<reference path="~/Scripts/jasmine/angular-mocks.js"/>
///<reference path="~/Scripts/angular-ui/ui-bootstrap.min.js" />
///<reference path="~/Scripts/jasmine/controllers.js"/>
///<reference path="~/Scripts/App/Controllers/testableController.js" />
///<reference path="~/Scripts/App/AppJasmine.js" />
describe("Controllers", function() {
beforeEach(module("moduleName"));
describe("Jasmine testableController", function() {
var scope,
controller;
beforeEach(inject(function ($rootScope, $controller) {
scope = $rootScope.$new();
controller = $controller('testableController', { $scope: scope });
}));
it('should set the page title as "Welcome"', function() {
expect(scope.title).toBe('Welcome');
});
});
});
のように見えます
実コントローラは、角度uiブートストラップ "ui.bootstrap"を使用します。私は次のサンプルのように変更しますが、私はそれをテストしようとすると、エラーブートストラップ
angular.module('moduleName', ['ui.bootstrap']);
var moduleName;
(function (moduleName) {
'use strict';
var testableController = (function() {
function testableController($scope, $uibModal) {
var _this = this;
this.$scope = $scope;
this.$uibModal = $uibModal;
$scope.title = "Welcome";
}
testableController.className = 'testableController';
return testableController;
}());
moduleName.testableController = testableController;
})(moduleName || (moduleName = {}));
への依存関係を持つ
Error: [$injector:unpr] Unknown provider: $templateRequestProvider <- $templateRequest <- $uibModal
http://errors.angularjs.org/1.2.24/$injector/unpr?p0=%24templateRequestProvider%20%3C-%20%24templateRequest%20%3C-%20%24uibModal in http://localhost:61032/referenceFile?path=~/webui/trunk/Netvacation.Pegasus.WebUI/Scripts/jasmine/angular.js (line 3802)
コントローラー** EDIT 1 *がある場合、コントローラは、ページ上で動作します* 試しました
同じエラーがあります。
編集私が使用して2
http://angular-ui.github.io/bootstrap/ バージョン:1.3.3 - 2016年5月22日
AngularJSのv1.2.24
編集私がテストしたいいけない3 $ uibModal、でもそれを模倣する
どのバージョンのui.bootstrapとどの角度の角度を使用していますか? – JayIsTooCommon
アップデートされた質問ui.bootstrap 1.3.3、angular v1.2.24 –