У меня угловое приложение, и один его дочерний модуль загружается при отложенной загрузке.Я использую этот код в app.routing.ts для загрузки этого модуля.
{
path: '',
component: FullLayoutComponent,
data: {
title: 'Home'
},
children: [
{
path: 'dashboard',
loadChildren: './views/dashboard/dashboard.module#DashboardModule'
}
],
canActivate: [LoggedInGuard]
},
Теперь во всех компонентах модуля приборной панели мое модульное тестирование не работает.то есть потому что spyOn не работает.позвольте мне показать код файла спецификации и фактическую функцию
it('be able to call getDemographicsData function from ngOnInit', () => {
spy = spyOn(programDemographicsComponent, 'getDemographicsData').and.callThrough();
spyOn(programDemographicsComponent, 'dateRangeHandler');
programDemographicsComponent.ngOnInit();
expect(programDemographicsComponent.getDemographicsData).toHaveBeenCalled();
});
Функция, которую я тестирую модулем:
ngOnInit() {
this.qualifyingProductsTableCurrentPage = 0;
this.qualifyingProductsTableValuesPerPage = 5;
const startDateMillis = moment().subtract(90, 'days').valueOf();
const endDateMillis = moment().valueOf();
this.getDemographicsData(startDateMillis, endDateMillis)
}
getDemographicsData(startDateMillis, endDateMillis) {
console.log('spy is not working')
const metricsRequestData = new MetricsRequest();
metricsRequestData.startDateMillis = startDateMillis;
metricsRequestData.endDateMillis = endDateMillis;
this.getGenderData(metricsRequestData);
this.getAgeData(metricsRequestData);
}
Поскольку я шпионил за методом getDemographicsData(startDateMillis, endDateMillis)
в тестовых случаях, но мойconsole.log('spy is not working')
все еще работает.Пожалуйста, дайте мне знать, если понадобятся какие-либо подробности.
PS.Я проверил ту же проблему в родительских компонентах, и мой spyOn работает нормально в них.Я сталкиваюсь с проблемой только в компонентах с отложенной загрузкой