使用 Sinon.js 存根 performance.now()

stub performance.now() using Sinon.js

我正在 Ember-qunit 中编写单元测试。我想在 performance.now.

上设置自定义值

我尝试了 sinon.stub(performance,'now', 60000); 但这没有用。我得到 TypeError: stub(obj, 'meth', fn) has been removed.

如何使用 sinon.js 存根 performance.now()?

谢谢

不确定你的第三个参数 (60000) 应该是什么,因为我不熟悉 performance.now(),但这不是对 Sinon.stub() (there is no 3rd parameter).不过,根据文档,您应该能够捕获存根函数,然后对其调用一个方法来指示所需的 return 值:

const stub = sinon.stub(performance, 'now');
stub.returns(60000);

然后,当调用存根时,您应该得到:

console.log( stub() );  // 60000

您可以在 jsfiddle example 中看到此功能。

创建一个全局对象,如:

global.performance = {
   now() {
    return <returning_value>; // use Date.now() or any value
};

现在您可以访问performance.now()