【发布时间】:2014-11-17 20:52:49
【问题描述】:
我想对用于使用 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 变量都需要由测试框架设置。
使用Function.prototype.apply函数可以很容易地模拟this.key:
var mongoContext = {
key: "sampleKey"
};
mapFunction.apply(mongoContext);
问题
我想知道在这种情况下如何模拟 key 值。
【问题讨论】:
标签: javascript mongodb unit-testing