依赖性加载&文件系统模拟

时间:2016-11-10 21:51:23

标签: javascript node.js unit-testing module mocking

所以我有一个依赖:

dep = require('dep')

如果我在调用dep函数之前模拟了文件系统,则找不到dep导出的文件。

mockFs({})
dep.bar() #file where dep exported from not found

如果我在模拟出文件之前调用一个函数,则会找到从中导出的dep。

dep.foo()
mockFs({})
dep.bar() #works

有关这种行为的原因的任何想法?

1 个答案:

答案 0 :(得分:0)

您的require()来电已被缓存,因此dep正在使用真实文件系统,因为它可能会调用require('fs'),但尚未模拟。

稍后模拟fs意味着对require('fs')的任何调用都将使用模拟,但任何已加载的内容都不会受到影响。