【问题标题】:fakeAsync and tick when unit testing code with Promise and Observables使用 Promise 和 Observables 对代码进行单元测试时使用 fakeAsync 和打勾
【发布时间】:2017-07-06 22:26:25
【问题描述】:

我假设在使用 Promises 测试代码时,需要使用 fakeAsync/tick 组合来保证 Promise 被解析/拒绝。这是因为 tick 在调用时会耗尽微任务队列。

但是,Observables 呢?我们是否也应该使用 fakeAsync/tick 来保证调用 subscribe 处理程序? 看起来使用 Observables 的单元测试完成得很好,通知了所有订阅的 Observer 实例,没有 fakeAsync/tick 所以我不确定这是否需要。

谢谢

【问题讨论】:

    标签: unit-testing angular rxjs5


    【解决方案1】:

    迟到的答案(您现在可能已经想通了)。虽然如果其他人有同样的疑问,我想提一下。

    正如下面的答案中所解释的,“每个可观察运算符使用完成其工作所需的最少异步性”

    Synchronicity in RxJS

    所以这主要取决于我们使用什么 RxJs Operator。

    假设我们在运行单元测试时使用 Subject/BehaviorSubject 在流中推送新值(我相信这是模拟基于 Observable 的数据存储实现的方法之一),然后 我们这样做不需要 fakeAsync 和 tick,因为订阅处理程序将被同步调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多