Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 使用jasmine.spyOn表示mongoose模式方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我无法让茉莉花间谍为我的猫鼬文件工作.我在我的用户架构中设置了一个方法,如下所示:

User.methods.doSomething = function() {
   // implementation
}

用户是我正在测试的模型的依赖项,我想确保正确调用doSomething.在我的测试中,我有类似的东西:

spyOn(User.scheR_291_11845@a.methods,'doSomething')

如果我注销User.scheR_291_11845@a.methods.doSomething我得到了我期望的函数但是当我运行调用方法代码时,调用原始实现而不是间谍.我也做不到:

spyOn(userInstance,'doSomething')

在我的测试中,因为userInstance没有暴露,我真的想避免暴露它.基本上我想在User文档(实例?)原型上设置一个间谍.那可能吗?

解决方法

Mongoose正在将模式中定义的方法复制到模型原型中,并且只使用那些方法.即便如此

User.scheR_291_11845@a.methods.doSomething === User.prototype.doSomething

如果你设置:

spyOn(User.scheR_291_11845@a.methods,'doSomething')

它不会被调用 – User.prototype.doSomething会.你的猜测是对的,你应该使用:

spyOn(User.prototype,'doSomeTing');

如果你想在设置间谍后调用原始方法,请不要忘记使用and.callThrough(我为之倾倒).

大佬总结

以上是大佬教程为你收集整理的node.js – 使用jasmine.spyOn表示mongoose模式方法全部内容,希望文章能够帮你解决node.js – 使用jasmine.spyOn表示mongoose模式方法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。