所以我有一个依赖:
dep = require('dep')
如果我在调用dep函数之前模拟了文件系统,则找不到dep导出的文件。
mockFs({})
dep.bar() #file where dep exported from not found
如果我在模拟出文件之前调用一个函数,则会找到从中导出的dep。
dep.foo()
mockFs({})
dep.bar() #works
有关这种行为的原因的任何想法?
答案 0 :(得分:0)
您的require()
来电已被缓存,因此dep
正在使用真实文件系统,因为它可能会调用require('fs')
,但尚未模拟。
稍后模拟fs
意味着对require('fs')
的任何新调用都将使用模拟,但任何已加载的内容都不会受到影响。