在提出问题之前进行了一段时间的搜索。
文件结构:
.
|____lib
| |____bar.js
| |____baz.js
| |____foo.js
|____test
| |____bar.js
| |____baz.js
| |____foo.js
使用案例:
关于上面的文件结构,./lib/foo.js
需要./lib/bar.js
,./lib/bar.js
需要./lib/baz.js
。
当通过./test/foo.js
单元测试./lib/foo.js
时,我想要模拟./lib/bar.js
,这样我只关心./lib/foo.js
。一旦./test/foo.js
中的测试结束,我想重置/取消模拟./lib/bar.js
。
当通过./test/bar.js
单元测试./lib/bar.js
时,我想要模拟./lib/baz.js
,这样我只关心./lib/baz.js
。一旦./test/foo.js
中的测试结束,我想重置/取消模拟./lib/baz.js
。
同理类推。
换句话说,我想在测试文件中模拟依赖项并在需要时重置。
很可能在测试文件中多次模拟并在测试文件中所有测试结束后重置。
或者我可以使用一些文件级别的闭包变量来控制本地模拟。
下面提到的StackOverflow帖子有很好的讨论,但我无法得出任何结论。
我找到了以下模块:
还有一些其他的模块,请参考这里。
在上述模块中,看起来mockery可以解决我的问题,主要是重置/取消模拟的依赖项。
如何在proxyquire中实现相同的功能?
还有其他模块可以解决上述问题吗?