В тесте с угловым модулем требуется много ненужного кода для издевательства/блокировки всех зависимостей вручную, особенно когда все, что мне нужно, это некоторые общие макеты. Кроме того, при изменении списка зависимостей для службы/контроллера тесты прерываются из-за отсутствия зависимостей.Угловой автомодельный контроллер/сервисные зависимости
В C# существует способ перенастроить контейнер DI, чтобы автоматически издеваться над всеми зависимостями, когда вызывается Resolve(). Я хочу что-то подобное в Угловом.
Я хочу от этого:
beforeEach(inject(function ($controller, $rootScope, agsRest) {
scope = $rootScope.$new();
sut = $controller('SearchController', {
$scope: scope
, map: {}
, agsRest: agsRest
, config: {}
, core: {}
, myPopup: {}
, popupFormatter: {}
});
}));
Чтобы что-то вроде этого:
beforeEach(inject(function ($controller, $rootScope, agsRest) {
scope = $rootScope.$new();
sut = autoMock("SearchController"); // instance of SearchController is returned, which has all dependencies mocked with sinon/jasmine/whatever
}));
Есть ли какая-то библиотека/код, чтобы сделать это?
Нет, но вам не нужно издеваться * все *, только то, что вы собираетесь использовать в тесте, не так ли? –
Иногда. Но мне все равно нужно создавать и передавать все зависимости при использовании $ controller ('SearchController', {...}); И это требует много ручного письма. – andree