这种流程的正确方法是什么? BarService
有一个返回布尔值的函数。该函数或者计算结果本身,或者它可能取决于FooService
中可观察调用的结果。
我期待测试结果为真,但未定义。
foo.service.ts
doObservableThing(): Observable<boolean> {
return Observable.of(true);
}
bar.service.ts
doThing(): boolean {
if (someCondition) { // will be true for the test below
this.fooService.doObservableThing().subscribe(
() => { return true; },
() => { return false; });
} else {
return false;
}
}
bar.service.spec.ts
it('should return true', () => {
let result = barService.doThing();
expect(result).toBe(true); // result is undefined
});
答案 0 :(得分:1)
试试这个:
doThing(): Observable<boolean> {
if (someCondition) { // will be true for the test below
return this.fooService.doObservableThing().map(() => true);
} else {
return Observable.of(false);
}
}