@Injectable()
export class MyServ {
public stream: ReplaySubject<any> = new ReplaySubject();
constructor (private subService: SubService) {}
protected init() {
this.subService.on(this.updateElement, (event) => this.update(event),
false);
}
private update(event) {
/// do something
}
}
我使用Jasmine框架对此课程进行了测试。 所以:
beforeEach(() => {
TestBed.configureTestingModule{
providers: [
MyServ,
{provide: SubService, useClass: SubServiceStub}
]
}
describe('My Serv should', (done) => {
let myServ;
myServ.init();
myServ.stream.subscribe(e => {
expect(e).toEqual('foo');
done();
});
mySubService.fire('foo');
});
});
通常来说,该代码很好。如果我只运行一次,则一切正常,但是如果并行运行其他测试,则超时超过。使用done()测试可观察的订阅方法是否是一种好方法?还是有更好的方法来实现这一目标?