【发布时间】:2020-12-15 13:38:55
【问题描述】:
我对所有不同类型的单元测试仍然很陌生,我又一次陷入了对服务的测试。
这是我要测试的服务中的功能:
For your information:
this.setParams returns an object like {name: 'Test', id: 3}
getDataCount(dataparams: Filter): Observable<number> {
const url = 'http://blablabla.com';
const params = this.setParams(dataparams);
return new Observable<number>(observer => {
this.httpc.get<number>(url, { params }).subscribe(
(data) => {
observer.next(data);
observer.complete();
}
);
}
);
}
我的测试设置是:
describe('MyDataService', () => {
let service: DataService;
let mockParams: Filter;
let mockCount: number;
mockParams = { name: 'Test', id: 3 };
mockCount = 358;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
HttpClientTestingModule
]
});
service = TestBed.inject(DataService);
});
我的测试是这样的:
it('should return mockCount', async () => {
const test = await service.getOperatingDataCount(mockParams).toPromise();
expect(test).toBe(mockCount);
});
但它返回“异步函数未在 5000 毫秒内完成(由 jasmine.DEFAULT_TIMEOUT_INTERVAL 设置)”。我也阅读了其他线程,但我仍然无法弄清楚如何为此编写适当的测试。谁能指出我正确的方向?
【问题讨论】:
标签: angular typescript unit-testing rxjs jasmine