1
Я пытаюсь издеваться функцией, которая возвращает обещание, используя spyOn со следующим кодом:Не удается прочитать свойство «spyOn» в нуле - Дразнящее обещание в тесте angularJS единичного
beforeEach(inject(function($controller, $rootScope, $q) {
scope = $rootScope.$new();
q = $q;
ctrl = $controller('BillingCtrl', {
$scope: scope,
$q: q
});
}));
it('should have overlay off when cancel modal is shown',
function() {
var deferred = q.defer();
deferred.resolve();
spyOn(scope, 'confirmModal').andReturn(deferred.promise);
scope.cancelSubscription(""); //scope.confirmModal is called within here.
expect(scope.overlayOn).to.equal(true);
});
Это бросает эту ошибку:
Chrome 37.0.2062 (Mac OS X 10.9.2) Unit: BillingController "before each" hook: workFn FAILED
TypeError: Cannot read property 'spyOn' of null
scope.confirmModal
Определенно существует в этом контексте, поскольку я могу console.log его.
Любые указатели будут оценены!
просто интересно, это to.equal или toEqual? –
@RohanChandane to.equal в Jasmine – Greg
Я думаю, что 'spyOn' следует использовать в' beforeEach', а не в 'it'. – yarons