【发布时间】:2015-07-14 14:34:07
【问题描述】:
在提出问题之前搜索了一段时间。
文件结构:
.
|____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。
以此类推。
或者换句话说,我想在测试文件中模拟依赖项并在需要时重置。
最有可能在测试文件中模拟几次并在测试文件中的所有测试结束后重置 a。
或者我可以通过一些文件级别的闭包变量来控制本地模拟
下面提到的StackOverflow 帖子有很好的讨论,但我无法得出任何结论。
我遇到了以下模块
在上面,看起来mockery 解决了我的用例,主要是reset/un-mock the mocked dependency。
如何在proxyquire中实现同样的效果?
是否有任何其他模块可以解决所述用例?
【问题讨论】:
标签: node.js unit-testing dependency-injection mocking