【问题标题】:How to mock or stub 'instanceof' in Chai | Sinon | Mocha如何在 Chai 中模拟或存根“instanceof”诗乃 |摩卡
【发布时间】:2020-01-06 13:29:06
【问题描述】:

我有一个需要模拟或存根数据的情况。

    var array =['add','divide']
    var add =listMehtod[0];
    if(add instanceof Calculator){  // how to test this ?
       // some logic
     }

基本上我必须为内部逻辑编写一些测试用例,但问题是我无法通过的第一个 if 语句。有什么办法可以通过 chai 或 sinon 来处理?

测试用例:

  var a = new Calculator();
  expect(a).to.be.instanceOf(Calculator) // this is returning false

【问题讨论】:

    标签: javascript unit-testing sinon chai sinon-chai


    【解决方案1】:

    您可以使用Object.create() 创建具有给定原型的空白(-ish)对象,该原型将通过instanceof 检查:

    class Calculator {
        constructor() { this._calculator = 'CALCULATOR' }
        calculate(a, b) { return a + b }
    }
    const calc = Object.create(Calculator.prototype)
    console.log(calc instanceof Calculator) // => true
    

    请注意,此对象仍将继承其原型的属性,即上面的 calculate() 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多