我想用map reduce算法对用于查询MongoDB的JavaScript函数进行单元测试。
function mapFunction() {
if(key !== this.key) {
return;
}
// do reduce logic
}
this.key
变量是MongoDB的对象属性(this
提供对此类对象的所有属性的访问权限。)key
是范围变量(范围对象分别提供给map reduce查询)。 mapFunction
' if
语句的目的是简单地忽略MongoDB对象,因为它们的键与作用域中提供的键不匹配。
要模拟MongoDB上下文,key
和this.key
变量都需要由测试框架设置。
使用this.key
函数
Function.prototype.apply
var mongoContext = {
key: "sampleKey"
};
mapFunction.apply(mongoContext);
我想知道在这种情况下如何模拟key
值。
答案 0 :(得分:0)
您可以将mapFunction
包装在调用函数中,并根据需要设置范围。
key
变量将回退到window
,除非它在链的下方被遮蔽。应该适合你的问题。