반응형
재스민 스파이의 반품가치는 어떻게 변경하나요?
난 재스민을 이용해서 스파이를 만들고 있어
beforeEach(inject(function ($injector) {
$rootScope = $injector.get('$rootScope');
$state = $injector.get('$state');
$controller = $injector.get('$controller');
socket = new sockMock($rootScope);
//this is the line of interest
authService = jasmine.createSpyObj('authService', ['login', 'logout', 'currentUser']);
}));
다양한 방법으로 반환되는 것을 변경할 수 있으면 좋겠습니다.authService
.
실제 테스트는 다음과 같이 설정됩니다.
function createController() {
return $controller('UserMatchingController', {'$scope': $rootScope, 'socket':socket, 'authService': authService });
}
describe('on initialization', function(){
it('socket should emit a match', function() {
createController();
expect(socket.emits['match'].length).toBe(1);
});
it('should transition to users.matched upon receiving matched', function(){
//this line fails with "TypeError: undefined is not a function"
authService.currentUser.andReturn('bob');
createController();
$state.expectTransitionTo('users.matched');
socket.receive('matchedblah', {name: 'name'});
expect(authService.currentUser).toHaveBeenCalled()
})
})
컨트롤러의 설정 방법은 다음과 같습니다.
lunchrControllers.controller('UserMatchingController', ['$state', 'socket', 'authService',
function ($state, socket, authService) {
socket.emit('match', {user: authService.currentUser()});
socket.on('matched' + authService.currentUser(), function (data) {
$state.go('users.matched', {name: data.name})
});
}]);
기본적으로 스파이 메서드의 반환값을 변경할 수 있으면 좋겠습니다.하지만, 제가 이 문제에 올바르게 접근하고 있는지는 잘 모르겠습니다.jasmine.createSpyObj
.
대신 이거 먹어봐.Jasmine 2.0에서는 API가 변경되었습니다.
authService.currentUser.and.returnValue('bob');
문서:
https://jasmine.github.io/tutorials/spying_on_properties
이렇게 덮어쓸 수 있어요
updateService.getUpdate = jasmine.createSpy().and.returnValue('bob')
언급URL : https://stackoverflow.com/questions/28890424/how-to-change-return-value-of-jasmine-spy
반응형
'programing' 카테고리의 다른 글
스크립트로 인해 "인라인 스크립트 실행 거부:인라인 실행을 활성화하려면 'unsafe-inline' 키워드, 해시 또는 난스가 필요합니다." (0) | 2023.03.12 |
---|---|
부모 클래스에서 자식 구성 요소 메서드 호출 - 각도 (0) | 2023.03.12 |
AngularJS에서 ng-repeat을 사용하여 키와 값을 반복하려면 어떻게 해야 합니까? (0) | 2023.03.12 |
React.js - 정의되지 않은 속성을 읽을 수 없습니다. (0) | 2023.03.12 |
URL용 PHP 검증/regex (0) | 2023.02.01 |