茉莉花时钟滴答;火狐:无法触发Q.delay方法

Jasmine clock tick & Firefox: failing to trigger a Q.delay method

本文关键字:delay 方法 滴答 时钟 火狐 茉莉花      更新时间:2023-09-26

懒惰加载测试:

我正在尝试为Jasmine构建一个测试,以测试使用Q.delay的方法。为了完成10秒的等待,我使用了Jasmine的时钟:

jasmine.Clock.tick(10010);

这在Chrome上有效,但在Firefox上不起作用。我看到Q的延迟方法使用了setTimeout,所以我看不出有任何不同行为的原因。

知道为什么它在Firefox上失败了吗?

有了jasmine 2.0和Q的v1标签,我就可以运行这个规范:

describe("testing", function() {
  beforeEach(function() {
    jasmine.clock().install();
  });
  afterEach(function() {
    jasmine.clock().uninstall();
  });
  it("should work", function() {
    var foo = null;
    Q.delay('hi', 10000).then(function(arg) {
      foo = arg;
    });
    jasmine.clock().tick(10010);
    expect(foo).toEqual('hi');
  });
});

chrome、firefox和phantomjs都没有问题。我不确定这是因为我们在2.0中解决了这个问题,还是因为你有一些更复杂的规范,我不会在这里复制。