【发布时间】:2021-04-16 22:28:29
【问题描述】:
有包含2个方法的服务:
export class CounterService {
constructor(private http: HttpClient) {}
getGirls(): Observable<any> {
return this.http.get<any>('http://localhost:3000/girls'); // return some JSON
}
getObservableValue() {
return of('observable value');
}
}
我尝试编写单元测试:
describe('CounterService', () => {
let service: CounterService;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [HttpClientTestingModule],
providers: [CounterService],
});
service = TestBed.inject(CounterService);
});
it(
'test should wait for CounterService.getObservableValue',
waitForAsync(() => {
service
.getObservableValue()
.subscribe((value) => expect(value).toBe('observable value'));
})
);
it(
'test should wait for CounterService.getGirls',
waitForAsync(() => {
service
.getGirls()
.subscribe((value) => expect(value).toBeTruthy());
})
);
});
结果测试 'test should wait for CounterService.getObservableValue' 成功,但测试 'test should wait for CounterService.getGirls' 不成功。 p>
Jasmine 显示以下消息:
SPEC 没有期望:测试应该等待 CounterService.getGirls
请帮我测试 getGirls() 没有间谍和任何模拟。有可能吗?
【问题讨论】:
标签: angular unit-testing jasmine