如何使用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.
}
答案 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
进行存根,以便所有实例都具有该属性/方法存根。因此,您将能够访问该对象。试一试,让我知道。