我有一个angular应用,它的一个子模块正在通过延迟加载进行加载。我正在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在其中正常工作。我只在延迟加载的组件中遇到问题