如何在没有测试平台的情况下测试Angular时“检测到变化”?
使用组件,我将拥有:
it('should work', async(() => {
const fixture = TestBed.createComponent(TestComponent);
// do some async call
fixture.detectChanges(); // <=== This is what I want
expect(something).toEqual(somethingElse);
});
通过服务,我并不总是有一个测试平台。在断言之前如何判断角度等待?例如:
it('should work', async(() => {
const service = new MyService();
const sub = service.emitter$.subscribe((val) => {
// expect(val).toEqual(otherVal);
});
service.doAsyncWork();
});
如何连接这些?如果我有两个阶段需要检查(例如,在异步工作之前一次,之后一次,但是在一些初始阶段之后),该怎么办?
答案 0 :(得分:1)
使用fakeAsync
tick
函数来模拟时间段。
it('should work', fakeAsync(() => {
const fixture = TestBed.createComponent(TestComponent);
// do some async call
tick(10000);
expect(something).toEqual(somethingElse);
});