#unit-testing #angular #webpack #karma-jasmine #angular-cli
#модульное тестирование #angular #webpack #карма-жасмин #angular-cli
Вопрос:
У меня есть вопрос относительно создания модульных тестов в Angular 2 (финальная версия — 2.0.0). Как я могу протестировать компонент, который зависит от других компонентов.
Например, app.component.ts, my app.component.ts зависит от других компонентов, таких как HomeComponent и другие компоненты. В app.component.ts это не проблема, поскольку модули импортируются через app.module.ts.
Однако в app.component.spec.ts я не знаю, как это структурировать, поскольку он не будет принимать модуль в качестве импорта. Кроме того, когда я запускаю тест, app.component.spec.ts запрашивает объявление сторонних библиотек, но я не могу импортировать модуль сторонней библиотеки, и я не могу импортировать компоненты внутри модуля один за другим.
Кстати, я использую последнюю версию angular-cli, которая уже использует webpack. Нужно ли мне что-то настраивать для выполнения тестов?
В руководстве по веб-сайту Angular testing (Angular 2 — Testing) не показано, как это сделать. Я был бы очень признателен за помощь, поскольку я застрял в этой проблеме.
Вот код:
describe('App', () => {
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
AppComponent
],
imports:[
AppModuleComponents
]
});
});
После запуска ng test мне выдается запрос с этой ошибкой:
Изображение ошибки после запуска ng-теста
Комментарии:
1. ммм … трудно сказать, что вы просите без кода, вы должны иметь возможность включать модули, используя что-то вроде:
fixture = TestBed.configureTestingModule({ imports: [HttpModule, DhcpModule], providers: [ {provide: TranslationService, useValue: translationService}, {provide: SessionsService, useValue: sessionsService}, {provide: DhcpConfigService, useValue: dhcpConfigService}, ] }).createComponent(DhcpPoolComponent);
2. Опубликуйте код, который вы используете в данный момент, чтобы попытаться настроить модули для теста
3. ОК. Я отредактирую сообщение, чтобы включить код и скриншот.
4. Я не знаю, почему он запрашивает HomeComponent, когда я не вызывал его из app.component.ts . Однако он просто маршрутизируется app.component.ts .
5. Вам нужно объявить все модули, которые используются подкомпонентами, точно так же, как вы делаете в своем
app.module.ts