반응형
RouteParam을 사용하는 컨트롤러 각도 테스트
다음을 사용하는 컨트롤러를 테스트해야 합니다.$routeParams
행동을 정의할 수 있습니다.아마 시험 문제일 수도 있고, 컨트롤러를 작성한 방식이 틀려서 지금은 시험을 작성할 수가 없습니다.
여기 제 컨트롤러가 있습니다.
angular.module('cmmApp')
.controller('UserCtrl', function ($scope, $location, $routeParams, $ionicLoading, $ionicPopup, Userservice) {
//if a user id is set retrieve user information
if(typeof $routeParams.id !== 'undefined'){
var loader = $ionicLoading.show({content: "Retrieving user data"});
var user = Userservice.get({id: $routeParams.id}).$promise;
user.then(function(res){
console.log(res);
$scope.user = res.user;
loader.hide();
});
}
//else create an empty resource
else {
$scope.user = new Userservice;
}
});
기본적으로 id가 제공된 경우에만 리소스를 로드하고 싶습니다.$routeParams
, 그렇지 않으면 빈 리소스를 만듭니다.
테스트 결과는 이렇습니다.
'use strict';
describe('Controller: UserCtrl', function () {
// load the controller's module
beforeEach(module('cmmApp'));
var UserCtrl,
scope,
routeParams;
// Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $rootScope, $routeParams, Userservice) {
scope = $rootScope.$new();
routeParams = $routeParams;
UserCtrl = $controller('UserCtrl', {
$scope: scope
});
console.log("routeParams");
routeParams = {id: 8490394};
console.warn(routeParams);
}));
it('should create an epmty user', function () {
console.log(scope.user);
expect(scope.user).toEqual({});
});
});
내가 뛸때grunt test
카르마 응답:
Controller: UserCtrl should create an epmty user FAILED
Expected { } to equal { }.
Error: Expected { } to equal { }.
at null.<anonymous> (/Users/carlopasqualicchio/Sites/CMM_Ionic/test/spec/controllers/user.js:28:24)
카르마를 어떻게 바꾸라고 말하는지 궁금합니다.$routeParams.id
테스트를 실행하기 전에 두 개의 다른 테스트에서 다른 값을 할당합니다(첫 번째는 null로, 다른 테스트는 null로 설정해야 함).
어떤 도움이든 감사히 받겠습니다.
고마워, 매트.
사용자 정의를 전달할 수 있습니다.$routeParams
객체의 두번째 인수를 사용합니다.$controller
(locals 객체), 즉 당신이 통과하는 것과 같은 방식.$scope
:
UserCtrl = $controller('UserCtrl', {
$scope: scope,
$routeParams: {id: '...'}
});
언급URL : https://stackoverflow.com/questions/24122058/angular-test-a-controller-that-use-routeparams
반응형
'programing' 카테고리의 다른 글
Python 스크립트 내에서 curl 명령 실행 (0) | 2023.10.08 |
---|---|
MySQL에서 데이터베이스 이름 와일드카드로 GRANT? (0) | 2023.10.08 |
스위프트에서 클래스 메소드/프로퍼티를 만들려면 어떻게 해야 합니까? (0) | 2023.10.08 |
네이티브 함수 'ISNULL'에 대한 호출에서 매개 변수 개수가 잘못됨 (0) | 2023.10.08 |
파일을 재귀적으로 .gitignore하는 방법 (0) | 2023.10.08 |