#unit-testing #for-loop #karma-jasmine #subscription #angular12
Вопрос:
У меня есть этот цикл в коде подписки, который мне нужно протестировать, но я понятия не имею, как к этому подойти (не так много опыта работы с модульными тестами), поэтому простите мое невежество. У меня есть аналогичный код в других файлах, поэтому, если я смогу успешно протестировать это, я могу применить его к другим сервисам — я просмотрел другие сообщения здесь, на stackoverflow, но, честно говоря, я их не понимаю, и мне нужно попытаться разобраться в этом модульном тестировании, поэтому любая помощь здесь будет очень признательна
getData() { this.period.getAllDocsDataToday() .pipe(takeUntil(this.destroy$)) .subscribe((data) =gt; { const dateRange = { dateFrom: data.rangeFrom, dateTo: data.rangeTo, }; const waveData = data.chartModels; for (let i = 0; i lt; Object.keys(waveData).length; i ) { this.totalNoOfDocsDay.push( waveData[i].overall ); this.failNoOfDocsDay.push( waveData[i].failed ); this.sentNoOfDocsDay.push( waveData[i].sent ); this.dateOfDocsDay.push( waveData[i].dateOfDay ); } this.period.setDateRange(dateRange); }); }
В основном ищу пошаговый подход — вот мой файл спецификаций:
import { TestBed } from '@angular/core/testing'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; import { AllDocsChartService } from './all-docs-chart.service'; import { OrdersChartData } from '../../data/all-docs-view2-chart'; import { ProfitChartData } from '../../data/all-docs-chart'; import { MockDataModule } from '../mock-data.module'; describe('AllDocsChartService', () =gt; { let allDocsChartService: AllDocsChartService; let httpMock: HttpTestingController; beforeEach(() =gt; { TestBed.configureTestingModule({ imports: [ HttpClientTestingModule, MockDataModule, ], providers: [ AllDocsChartService, OrdersChartData, ProfitChartData, ], }); allDocsChartService = TestBed.get(AllDocsChartService); httpMock = TestBed.get(HttpTestingController); }); it('should call getProfitChartData function', () =gt; { const period = 'month'; allDocsChartService.getProfitChartData(period); expect(allDocsChartService).toBeTruthy(); }); it('should call loadChartData function', () =gt; { allDocsChartService.loadChartData(); expect(allDocsChartService).toBeTruthy(); }); it('should call ngOnDestroy function', () =gt; { allDocsChartService.ngOnDestroy(); expect(allDocsChartService).toBeTruthy(); }); });