Я новичок в тестировании Jasmine и в Angular framework. В настоящее время у меня есть странная ситуация, когда я не могу ссылаться на свои сервисные функции из своих тестов Jasmine.
Часть моей Инициализации Угловой Службы:
var service = {
checkIfCurrentIsObject: checkIfCurrentIsObject,
removeFromCurrentObject: removeFromCurrentObject;
}
function checkIfCurrentIsObject() {
return getCurrent().isObject();
}
function removeFromCurrentIsObject() {
checkIfCurrentIsObject();
return specialFunction();
}
Теперь в моем Тесте Кармы:
describe('when current object is property', function() {
it('verify the requote function is called', function() {
spyOn(Service, 'checkIfCurrentIsObject').and.returnValue(true);
spyOn(Service, 'removeFromCurrentIsObject').and.callThrough();
spyOn(Service, 'specialFunction');
expect(Service, 'specialFunction').toHaveBeenCalled();
});
Теперь проблема, с которой я столкнулся, заключается в том, что мой spyOn не забирает мою функцию checkIfCurrentIsObject, ЕСЛИ я не this.checkIfCurrentIsObject
его как this.checkIfCurrentIsObject
в моей функции removeFromCurrentIsObject
. Есть ли конкретная причина для этого?
Да, это должно быть
function removeFromCurrentIsObject() {
this.checkIfCurrentIsObject();
return this.specialFunction();
}
шпионить за ними.
Service.checkIfCurrentIsObject
метод Service.checkIfCurrentIsObject
. В JavaScript нет способа checkIfCurrentIsObject()
вызова функции checkIfCurrentIsObject()
.