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

How do I use sinon.js to mock/spy object mentioned inside the javascript function?

本文关键字:函数 对象 javascript 监视 sinon 何使用 js 模拟      更新时间:2023-09-26

如何使用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.
}

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

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以便所有实例都将存根该属性/方法。因此,您将能够访问该对象。试一试,让我知道。