【问题标题】:Sinon js AssertError: expected stub to be called once but was called 0 timesSinon js AssertError:预期的存根被调用一次,但被调用了 0 次
【发布时间】:2018-11-14 09:19:06
【问题描述】:

我一直在学习 Sinon JS 进行单元测试,我正在尝试让这个示例代码工作。我创建了一个简单的“外部”库:

class MyLib {

   simpleMethod () {
      return 'some response';
   }

   static handler() {
      const myLib = new MyLib();
      myLib.simpleMethod();
   }
}

module.exports = MyLib;

然后,我有一个简单的测试套件:

const chai = require('chai');
const sinon = require('sinon');
const MyLib = require('./my-lib');

describe ('sinon example tests', () => {

  it ('should call simpleMethod once', () => {
     let stubInstance = sinon.stub(MyLib, 'simpleMethod');

     MyLib.handler();

     sinon.assert.calledOnce(stubInstance);
  });

});

但我返回错误“AssertError:预期存根被调用一次但被调用 0 次”。我知道这可能很明显,但为什么没有调用 simpleMethod

【问题讨论】:

    标签: javascript node.js unit-testing sinon sinon-chai


    【解决方案1】:

    simpleMethod 是一个实例方法。要存根实例方法,您应该存根原型。

    在你的代码中试试这个。

    myStub = sinon.stub(MyLib.prototype, 'simpleMethod');
    

    记得在测试结束时恢复存根。

    myStub.restore();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      • 2022-08-17
      • 2020-03-28
      • 1970-01-01
      • 2016-01-09
      • 1970-01-01
      • 2017-01-03
      相关资源
      最近更新 更多