如何使用angulardart测试异步代码

时间:2014-10-30 18:47:26

标签: unit-testing dart angular-dart

我正在尝试使用dart测试异步代码。

我的逻辑是:

  1. 我的服务在延迟后删除节点。
  2. 在我的测试中,我执行该服务,他们等待更多的延迟,以测试节点是否被移除。
  3. 我用香草飞镖做这个,但有角度我得到例外:

    Test failed: Caught [Timer created from sync function.] 
    

    然后我将测试包装在异步中并得到以下错误:

    Test failed: Caught [2 active timer(s) are still in the queue.]
    

    我在这里为测试创建了一个repo:https://github.com/giovannicandido/angulardart-async-test

1 个答案:

答案 0 :(得分:1)

测试在特殊区域内执行(参见lib / mock / zone.dart)。

在这个区域内,新的Timer()将创建一个模拟计时器,你需要 调用clockTick()来模拟时钟滴答。

有关示例,请参阅test / mock / zone_spec.dart。

您的测试应该看起来像

clockTick(milliseconds: 1150); 
expect(ndom).toBeNull();