저는 단위 테스트와 AngularJS에서 새로운 것으로 고칠 수없는 문제가 있습니다. 내 테스트 중 하나가 작동하지 않습니다. 나는 값에 영향을줌으로써 나의 테스트에서 location.path()를 시작하려하지만, 내 컨트롤러에서 location.path()는 여전히 정의되지 않은 값을 가지고있다. 여기
내 CONTROLER입니다 :angular.module('...')
.controller('SignUpCtrl', ['$location', function ($location) {
// Retrieve type of user
var userType = $location.path().substr(9);
if(userType == 'member'){
userType = 'user';
}
console.log($location.path());
console.log(userType);
$scope.uType = userType; ]);
그리고 여기 내 테스트 모듈 :
describe('Controller: SignUpCtrl', function() {
// load the controller's module
beforeEach(module('...'));
var SignUpCtrl,
scope,
mockBackend,
environments,
location,
store;
beforeEach(inject(function ($controller, $rootScope, $httpBackend,$location,_Environments_) {
environments = _Environments_;
mockBackend = $httpBackend;
location = $location;
scope = $rootScope.$new();
SignUpCtrl = $controller('SignUpCtrl', {
$scope: scope,
$location: location
});
}));
it('should come from the right location', function(){
location.path('/sign-up/member');
expect(location.path()).toBe('/sign-up/member');
expect(scope.uType).toBe('user'); //Do not work
});
});
응답 해 주셔서 감사합니다. E2E 테스트를 살펴 보겠습니다. 단위 테스트에서 무엇을 테스트하고 E2E에서 무엇을 테스트 할 지 여전히 꽤 혼란 스럽습니다. – user2876974