2

延迟加载测试:

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

jasmine.Clock.tick(10010);

这适用于 Chrome,但不适用于 Firefox。我看到 Q 的延迟方法使用了setTimeout所以我看不出不同行为的任何原因。

任何想法为什么它在 Firefox 上失败?

4

1 回答 1

0

v1 标签中使用 jasmine 2.0 和 Q ,我可以运行这个规范:

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 中修复了这个问题,或者如果你有一些更复杂的规范,我不会在这里复制。

于 2014-01-25T19:02:38.363 回答