我在测试期间如何为node.js内置的fs模块进行存根化?
- 论坛
- 我在测试期间如何为node.js内置的fs模块进行存根化?
7 浏览
我在测试期间如何为node.js内置的fs模块进行存根化?
我想要模拟node.js的内置模块,比如fs
,这样就不会真正进行系统级的文件调用。我唯一能想到的办法就是将fs
和其他所有内置模块作为参数传递给我的所有函数,以避免使用真正的fs。这似乎有点愚蠢,而且函数签名会变得冗长,充斥着内置模块的参数。
var fs = require('fs'); function findFile(path, callback) { _findFile(fs, path, callback); } function _findFile(fs, path, callback) { fs.readdir(path, function(err, files) { //做一些操作。 }); }
然后在测试过程中:
var stubFs = { readdir: function(path, callback) { callback(null, []); } }; _findFile.(stubFs, testThing, testCallback);
肯定有比这更好的方法,对吧?