Ниже мой код, я не хочу, чтобы функция сервиса вызывалась, поэтому я использую шпион, но его даю ошибку. Я не могу понять это.AngularJSUnitTesting: Ожидаемая функция шпиона(), которая была вызвана
Любая помощь приветствуется.
Ниже мой код, я не хочу, чтобы функция сервиса вызывалась, поэтому я использую шпион, но его даю ошибку. Я не могу понять это.AngularJSUnitTesting: Ожидаемая функция шпиона(), которая была вызвана
Любая помощь приветствуется.
вам не нужно ...
var services = {
documentService:null
};
, что код просто запутанные вопросы.
вы должны упростить это ...
// services.documentService=_documentService_; // WHY DO THIS??
documentService=_documentService_;
тогда ...
spyOn(documentService, 'deleteDocument').and.callFake ... etc
затем ...
expect(documentService.deleteDocument).toHaveBeenCalled();
вы также можете попробовать ...
spyOn(loginService, 'isSuperAdmin').and.returnValue("something");
ВМЕСТО callFake (ваш предпологайте заявление останется без изменений)
ТАКЖЕ ...
Я предполагаю, что ваш контроллер делает ожидаемый вызов этого метода во время строительства? например, следующая линия делает ожидаемый вызов во время строительства?
controller = $controller('DetailCtrl', { $scope: $scope });
Другими словами ваш контроллер должен выглядеть как ...
app.controller("DetailCtrl", function($scope, documentService) {
// some other code
documentService.deleteDocument(); // MAKE SURE THIS CODE IS ACTUALLY BEING HIT IF ITS WRAPPED IN A CONDITIONAL STATEMENT
// some other code
});
ли вы на самом деле вызова 'services.documentService.deleteDocument()' где-нибудь? – Ankh
Я не уверен, но да, я хочу вызвать services.documentService.deleteDocument() и издеваться над ним, чтобы проверить – shreyansh
Да, сейчас я наблюдал, что, как мне кажется, звонок не происходит внутри службы, какая ошибка я делаю во время инъекций или присвоение – shreyansh