을 통해 jasmine에서 테스트 한 컨트롤러에서 모듈을 사용할 수있게 해줍니다. Resharper 9.2를 사용하여 PhantomJs를 통해 재스민을 사용하여 컨트롤러를 성공적으로 테스트 할 수 있습니다. 테스트 러너로서.Resharper
나는 Resharper를 설치하기 위해 https://blogs.endjin.com/2014/09/unit-testing-angularjs-with-visual-studio-resharper-and-teamcity/의 지시를 따랐다.
이것은 일 : 나는에 따라 모듈을 지정 해달라고하면 내가 컨트롤러에 대한 테스트를 실행할 수 있습니다
컨트롤러 :
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 = {}));
사양 파일이
///<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가있는 경우 컨트롤러 * 페이지에서 작동 * 나는
beforeEach(
function() {
module("ui.bootstrap");
module("moduleName");
}
);
을 시도했지만 같은 오류가 있습니다.
편집 내가 사용이
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를 참조하십시오. –