我正在使用nodejs
撰写网络应用程序。我有一些utils函数,我分别导出和测试。还有另外一个函数,它调用了一些我想要存根的utils函数(使用sinon
)。
从我到目前为止看到的,我只能在对象上存根方法,那么我应该如何设计我的实用程序函数以便我可以测试所有这些呢?
function util1() {
...
}
function util2() {
...
}
function util3() {
...
util1();
...
util2();
}
export {
util1,
util2,
util3
}
内部util3
我想模拟(或存根)util1
和util2
的调用。
答案 0 :(得分:0)
您可以将util1和util2放在单独的模块中,然后使用某些解决方案或现有模块,例如mock-require
https://github.com/boblauer/mock-require。
但也许最简单的解决方案实际上是改变你的设计以使用对象。然后,您可以使用存根创建对象,并使用util3方法将其提供给对象。
答案 1 :(得分:0)
一个简单的方法是:
function util3() {
...
moddule.exports.util1();
...
module.exports.util2();
}
第二种方法是将所有内容都包装在地图中
var self = module.exports = {
util3 : function() {
self.util2();
},
util2 : function() { },
..}