【问题标题】:Stub/spy on singleton with Sinon使用 Sinon 对单例进行 Stub/spy
【发布时间】:2018-07-19 05:03:30
【问题描述】:

我需要编写一些单元测试来检查对单例函数的调用。基本上,如果我有这个:

const somePackage = require('some-package');

我用以下方式调用它:

somePackage();

我希望能够监视/存根这个单例调用,以证明它被调用了。我知道如何使用使用sinon.stub(somePackage, 'someMethod') 的方法来做到这一点,但不仅仅是单例。

现在我实际上必须通过执行代码来编写集成测试,而实际上我想编写单元测试并显示这些外部方法已被调用。我相信这些软件包的开发人员已经对功能进行了自己的测试。

【问题讨论】:

    标签: javascript unit-testing sinon stub spy


    【解决方案1】:

    你可以用 sinon 监视任何函数:

    const spy = sinon.spy(myFunc);
    

    要存根单个函数,您可以使用proxyquire,如issue 中所述:

    const proxyquire = require('proxyquire')
    const sinon = require('sinon')
    const sum = sinon.stub()
    
    const ModuleWithDependency = proxyquire('module', {
      'sum': sum
    })
    

    【讨论】:

      猜你喜欢
      • 2020-10-21
      • 2012-07-04
      • 2015-12-11
      • 1970-01-01
      • 2017-05-06
      • 2015-03-30
      • 2020-06-13
      相关资源
      最近更新 更多