2016-04-22 4 views
0

Я довольно новичок в тестировании Жасмина и в Угловой структуре. В настоящее время у меня есть странная ситуация, когда я не могу ссылаться на свои сервисные функции из своих тестов 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 в моей функции removeFromCurrentIsObject. Есть ли конкретная причина для этого?

ответ

0

Да, это должно быть

function removeFromCurrentIsObject() { 
    this.checkIfCurrentIsObject(); 
    return this.specialFunction(); 
} 

, чтобы шпионить за ними.

Это Service.checkIfCurrentIsObject способ, который шпионил. В JavaScript нет способа, как можно было бы проследить локальный вызов функции checkIfCurrentIsObject().

Смежные вопросы