ejemplo angularjs jasmine spy

angularjs - ejemplo - ng-init



¿Cómo cambiar el valor de retorno del espía jazmín? (1)

Intenta esto en su lugar. La API cambió para Jasmine 2.0:

authService.currentUser.and.returnValue(''bob'');

Documentación:

http://jasmine.github.io/2.0/introduction.html#section-Spies

Estoy usando Jasmine para crear un espía así:

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'']); }));

Me gustaría poder cambiar lo que devuelven los distintos métodos de authService .

Aquí está cómo se configuran las pruebas reales:

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() }) })

Así es como se configura el controlador:

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}) }); }]);

Esencialmente, me gustaría poder cambiar el valor de retorno de los métodos espiados. Sin embargo, no estoy seguro de si estoy abordando el problema correctamente al usar jasmine.createSpyObj .