Я новичок в Angular и Karma, и каждый сайт там, кажется, рекомендует другой способ написания модульных тестов, что делает все это очень запутанным. Помощь приветствуется!
У меня есть вспомогательный класс, который зависит от класса обслуживания. Я пишу блок-тест для вспомогательного класса. У меня есть это:
module("myModule");
it('works!', inject(function(myHelper) {
module(function($provide) {
$provide.service('myService', function() {
payload = spyOn(myService, 'getPayload').andReturn(
{id: 1 });
});
});
expect(myHelper.getSomeData()).toEqual(exepectedData);
}));
Исключением, которое я получаю при запуске теста, является:
Error: [$injector:unpr] Unknown provider: myHelperProvider <- myHelper
Я пробовал все разные способы сделать это, но пока не получил работу.
Попробуйте вызвать module("myModule");
в beforeEach
, то есть:
beforeEach(module('myModule'));
Возможно, вам повезло, что на самом деле вызывается функция, возвращаемая module("myModule")
, то есть:
module("myModule")();
... но никогда не пробовал это, и у меня есть серьезные сомнения.
Кроме того, я всегда прилагаю мое it()
функцию в describe()
блоке; не уверен, если это строго необходимо.