[求助]如何stub模块中的函数[已解决]
发布于 12 年前 作者 stormslowly 4782 次浏览 最后一次编辑是 8 年前

app主文件里面 require了一个 mongoose.model 在做单元测试的,不想连接数据库,于是想stub掉model里面的find函数。

在测试的before里面做了

_Task = require('../models/myModel').Task;
_find  = _Task.prototype.find 
_Task.prototype.find = function(cb){
    cb(null,[{name:'task1'}])
};

然后在 after 里面恢复

发现在运行测试case这样替换是不生效。

请问各位大牛,这样的情况 如何设置stub函数?

先谢过

1 回复

其实是自己犯2了 mongoose.model 对象本身才具有 find方法。即本问题中 _Task.find应该被stub掉 更搞的 _Task.prototype中根本没有find方法。 :)

回到顶部