如何使用sinon.js来模拟/窥探javascript函数中提到的对象?

时间:2014-12-03 18:08:37

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

如何使用sinon.js来模拟/窥探javascript函数中提到的对象? 提到的对象也进行了方法调用,我需要测试该对象是否调用该方法。

任何帮助将不胜感激。

提前感谢百万!

等待任何回复。

var ABCClient = require('ABCClient');
var connect = function(){
  var client;
  client = new ABCClient(); //instantiating object

  client.on('some parameter'); // Test if the `on` event is called.
}

1 个答案:

答案 0 :(得分:3)

看着你的模拟。一旦你退后一步思考它,这是相当直接的。您正在创建一个类的实例。只需这样做:

var ABCClient = require('ABCClient');

describe('test', function() {
  it('some test', function() {
     var stub = sinon.stub(ABCClient.prototype, 'on').yields('return object');
     assert.ok(stub.calledWith('Parameter'));
     ABCClient.prototype.on.restore();
  });
});

或者,如果您只想在不改变行为的情况下监视它,则可以使用spy而不是stub

在此示例中,您正在对prototype进行存根,以便所有实例都具有该属性/方法存根。因此,您将能够访问该对象。试一试,让我知道。