2013-02-27 3 views
0

Я работал над единичным тестом с angular.mock.$httpBackend для углового обслуживания, которое использует $http. Я сталкиваюсь с некоторыми проблемами, связанными с инъекцией всех зависимостей, потому что в моем тестовом случае необходимо получить доступ к службе, которая, в свою очередь, должна получить доступ к $httpBackend.Когда метод angular.mock.inject() выполняется немедленно?

Однако конкретная проблема, которая меня отключает, заключается в том, что иногда метод удобства angular.mock.inject() выполняет функцию, которую он мгновенно обертывает, а иногда просто возвращает копию функции. Я вижу в источнике, что это основано на свойстве currentSpec.isRunning. Что это значит? Это свойство Testacular или Jasmine? Я еще не зашел так далеко в кроличью нору ...

ответ

0

Последнее, что я проверил, возвращаемое значение angular.mock.inject() основывалось на том, в каком типе контекста Жасмин вы находитесь (я предполагаю они немного изменили его в 1.2 с добавлением поддержки мокко).

По существу, если ваш в спецификации (на самом деле внутри обратного вызова, переданного beforeEach):

beforeEach(function() { 
    inject(function() { }); 
}); 

Тогда он будет выполнять инъекцию немедленно; однако, если вы все еще определяете спецификацию:

beforeEach(inject(function() { })); 

Тогда он вернет функцию. В противном случае он будет выполняться до того, как ваши тесты будут запущены, и не будет ужасно полезным. Кажется, это просто предлагается как немного более удобный/менее подробный синтаксис.

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