在Node中测试绑定函数
Testing a bound function in Node
在我的模块的create方法中,我将一个函数绑定到一个变量。
var __ = function() {};
__.create = function() {
var instance = new __();
instance.bound = instance.functionToBindTo.bind(instance, 'boundParameter');
return instance;
}
__.prototype.functionToBindTo = function(paramater1, parameter2) {
//do stuff
}
我现在想要能够测试调用'bound',将'boundParameter'设置为parameter1。
通常我会这样做…
'ensure parameter1 passed as first parameter' : function(test) {
var newInstance = ClassToTest.create();
newInstance.functionToBindTo = function(parameter1) {
test.equal(parameter1, 'boundParameter');
};
newInstance.bound();
test.done();
}
然而,由于.bind()实际上创建了一个新函数,这不起作用,因为我不能在测试中重写它。我知道可以选择滚动我自己的bind2方法并对其进行修补,但我希望有一种方法可以避免这种情况。
任何想法?
谢谢,马特
这可能不是正确的方法,但是对于上面的测试用例,您可以在ClassToTest
原型对象中覆盖functionToBindTo
:
'ensure parameter1 passed as first parameter' : function(test) {
ClassToTest.prototype.functionToBindTo = function(parameter1) {
test.equal(parameter1, 'boundParameter');
};
var newInstance = ClassToTest.create();
newInstance.bound();
test.done();
}
相关文章:
- 如何在动态创建的节点上绑定函数
- 绑定函数时在IE7中未实现Javascript错误
- jQuery结合了2个绑定函数(类型错误:a是未定义的)
- Jquery函数无法处理动态加载的内容(不是绑定函数)
- 从console.log调用webpack绑定函数/类
- React没有绑定函数调用,尽管有相反的警告
- jQuery使用最后一个参数在Javascript循环中单击绑定函数
- 如何在React Native中为ListView中的每个元素绑定函数
- jquery绑定函数不起作用
- 具有绑定与未绑定函数的数组筛选器
- 绑定函数仅适用于最后一个元素
- 如何将新函数绑定到元素的 onclick 事件,并使其在所有其他绑定函数之前运行
- 绑定函数链接
- 动态 JS 拖动绑定函数限制在线拖动
- 绑定函数的返回语句中参数的推理是什么
- 在jQuery上动态绑定函数
- 确定 JavaScript 函数是否为绑定函数
- jQuery 绑定函数不起作用
- 反应组件中的绑定函数
- Javascript 绑定函数到 Ajax 加载事件