代码之家  ›  专栏  ›  技术社区  ›  Craig

fixture.whenstable()是否在角度测试中执行任何操作(如果不在异步测试执行区域内)?

  •  0
  • Craig  · 技术社区  · 6 年前

    最近我读了很多关于角度测试的文章,它们总是Async+Fixture.Whenstable和FakeAsync+Tick,但是你总是可以调用FixTrue.WheInstable,因为它不是紧密耦合的。如果您在不使用异步实用程序跟踪测试区域中的承诺时调用它,它实际上会做什么?

    例如:

    it('should be able to do this thing that needs some async setup', () => {
                fixture.detectChanges();
                fixture.whenStable().then()
    });
    

    我理解 FakeAsync/Tick fixture.detectChanges . 我的问题是关于什么 fixture.whenstable 当在一个 FakeAsync 执行区域作为 Async 区域应跟踪异步工作,允许 安装时的固定装置 至少在我理解的情况下,加入跟踪。或者,如果使用的话,实际上根本不在异步执行区域内。

    所以,如果fixture.whinstable在fakeasync函数中使用,或者在不设置异步执行区域的函数中使用,它会按预期工作吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   AleÅ¡ Doganoc    6 年前

    没有 whenStable() 如果你没有测试什么都不做 async 属于 fakeAsync . 什么 当稳定()时 是等待测试中的所有任务 NgZone 完成。当您不使用异步测试时, 天然气区 根本无法创建,并且 当稳定()时 马上回来。

    如果您想要更详细的信息,请在 GitHub .