上参数窥探到类方法使用兴农

问题描述 投票:1回答:2

我有我想窥视检查,该方法被调用的论据一类。

class Animal {
  constructor() {
     this.animals = [];
  }

  add(animal) {
    this.animals.push(animal);
  }
}

我的测试文件看起来像这样

const chai = require('chai');
const sinon  = require('sinon');
const Lazy = require('../lazy');

it('should be able to add an animal', function () {
    const animal = new Animal();
    const add = sinon.spy(animal, 'add');
    animal.add('cat')
    expect(animal).to.have.been.called.with('cat');
});

间谍是行不通的。我想知道如何检查什么正在使用兴农叫。

javascript ecmascript-6 tdd sinon chai
2个回答
0
投票

animal是对象,间谍实际上是add,所以它应该是:

expect(add).to.have.been.called.with('cat');

0
投票

帕特里克是正确的有关代码,你需要验证spy不是对象,但你的代码也仍然没有改变运行。我做了一个functioning example on RunKit。看来你需要使用calledWith为好,但你可能会使用一些其他的设置(这是丢失)。退房的代码:-)

因此,改变期望,

expect(add).to.have.been.calledWith('cat');
© www.soinside.com 2019 - 2024. All rights reserved.