javascript - Jasmine clock tick & Firefox : failing to trigger a Q.延时方法

标签 javascript jasmine q

延迟加载测试:

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

jasmine.Clock.tick(10010);

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

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

最佳答案

Jasmine 2.0 和 Q 在 v1 tag ,我能够运行这个规范:

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

关于javascript - Jasmine clock tick & Firefox : failing to trigger a Q.延时方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18126604/

相关文章:

javascript - Nodejs,诗乃 : How to test some functions are called upon an event

javascript - ajax - 在 JAVA 中关闭浏览器时关闭 session

javascript - 根据条件 react 路由器

node.js - 如何将 Q Promise 与 MongoDB Cursor.each() 一起使用?

node.js 使用 Q 处理异常

javascript - jquery-3.1.1.js :3855 Uncaught TypeError: $(. ..).loadingModal 不是函数

javascript - jasmine.Clock VS sinon.clock 我的 jasmin.Clock.useMock() 使用有什么问题吗?

javascript - 通过 Jasmine 的 toHaveBeenCalledWith 方法使用对象类型

node.js - 使用 jasmine 和 node.js 测试 Web API

javascript - 我是否正确地履行了这些 promise ?