Я начал тестировать свое угловое приложение и задал вопрос, который меня очень беспокоил. Например, у меня есть контроллер (mainController), который вводит 2 службы: authService, configService.Испытательный угловой контроллер со многими зависимостями
Перед тестированием я должен подготовить что-то вроде этого:
describe('controller: testController with testService mock', function() {
var controller, authService, configService;
beforeEach(module('app'));
beforeEach(inject(function($controller, _authService_, _configService_) {
authService = _authService_;
configService = _configService_;
controller = $controller('mainController');
}));
it('should be registered with all dependencies', function() {
expect(controller).to.be.defined;
expect(authService).to.be.defined;
expect(configService).to.be.defined;
});
}
И это совершенно ясно для меня. Что делать, если одна из служб или обоих имеет свои собственные зависимости (услуги)? Конечно, я собираюсь добавить его, пройдя через функцию инъекции. В небольших приложениях это не проблема. Я добавляю столько услуг, сколько мне нужно. Но вопрос в том, что, если эти службы вводят другие услуги, а другие вводят других, и существует огромная иерархия? Что делать, если мы должны добавить 30 сервисов, и мы не можем ошибаться, потому что иначе это не сработает?
Честно говоря, я много искал, но есть много примеров и руководств по тестированию, но каждый из них основан на базовых приложениях с несколькими контроллерами и службами.
Есть ли безболезненный способ справиться с этим? Может быть, есть способ пропустить некоторые зависимости или заставить автоматически вводить службы с его зависимостями?
Хорошо, но если я этого не делаю, у меня есть ошибка «перед каждым крюком НЕИСПРАВНО». Что не так ? – Donut
Когда вы спросите об ошибке, напишите код, вызывающий ошибку в вопросе, а также полное сообщение об ошибке и трассировку стека. –