如何使用 sinon.js 来模拟/监视 javascript 函数中提到的对象
How do I use sinon.js to mock/spy object mentioned inside the javascript function?
如何使用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
以便所有实例都将存根该属性/方法。因此,您将能够访问该对象。试一试,让我知道。
相关文章:
- 在javascript中调用函数/对象引用时,可容纳任何数据类型
- 访问函数对象的上下文属性|如何
- 为什么可以'我们在函数体中为函数对象添加属性,就像在javascript中为对象文字添加属性一样
- 如何将函数对象从javascript传递到Polymer元素
- 为什么函数对象的实例没有继承函数原型属性
- 为什么我会从 JavaScript 函数返回一个命名函数(对象)
- 为什么实例构造函数指向最上面的函数构造函数对象
- 使用object.freeze()扩展函数对象-can't添加字段
- 为什么'这'与函数对象一起使用时会有不同的处理方式
- setTimeout()/setInterval()赢得't执行**我正在传递函数对象,而不是执行函数
- 为什么茉莉花间谍不't通过引用解析函数对象
- 在 mongo map 中调用外部 javascript 函数(对象)或减少上下文的可能方法
- 在 JavaScript 中为函数对象添加别名
- 在 Express JS 中从路由调用函数对象
- 函数对象的名称属性是什么
- 构造函数对象
- 节点.js - 从另一个函数/对象发出事件
- 声明函数是否会创建具有函数名称和分配给它的函数对象的变量
- 函数对象__proto__和原型属性
- 类仿真 - 模块模式与函数对象