我正在使用Angular 2.1.0。
我有一个非常简单的异步服务:
@Injectable()
export class Service {
protected str: Subject<string>;
constructor() {
this.str = <Subject<string>>new Subject();
}
getStream(): Observable<string> {
return this.str.asObservable();
}
emit() {
setTimeout(() => {
this.str.next('Value 1');
setTimeout(() => {
this.str.next('Super Value 2');
}, 10000);
}, 10000);
}
}
emit()
模拟异步行为。和使用它的课程:
@Component({
selector: 'my-app',
template: '<div class="c" *ngIf="c">{{c}}</div>'
})
export class AppComponent {
private c: string;
constructor(private s: Service) { }
ngOnInit() {
this.s.getStream().subscribe(data => {
this.c = data;
});
this.s.emit();
}
}
我想为服务和组件编写单元测试。我已经阅读过angular.io教程。我还需要其他解释:(
对于测试组件我想:
或者也许没有必要将4和5指向为双2和3?
我知道,对于使用异步服务测试组件,有两个选项:使用存根服务或使用实际服务和间谍关键功能。在我的情况下,我应该如何编写两种方案的测试?
如何测试服务?我想避免等待20秒测试结果。