使用proxyquire进行模拟的策略需要跨越多个testing文件(NodeJS)

我在几个API文件中使用Rediscaching,这意味着我有一个依赖,我需要在testing中模拟。 假设我有以下文件结构

-api - login.js * - login.spec.js - initiate.js - initiate.spec.js - user.js * - user.spec.js - routes.js - server.js 

假设那些带有*的文件具有redis-connection作为依赖,我可以使用Proxyquire在相应的spec.js进行模拟。

简单。

当我运行所有testing时,问题就出现了,Mocha启动服务器。 所有这些文件将被引入我的routes.js ,并且因为Redis没有运行而失败。 我可以看到几个方法:

  1. 全球模拟proxyquire – 文档不喜欢这个。
  2. 我目前的解决方法,在每个需要redis-connection文件中,有条件地导入真实的东西或基本的模拟,如果process.env.NODE_ENV === 'test' 。 然后,如果您需要特定的行为,请将这个模拟器在相关的spec文件中更有用的模拟。 卷土重来,但似乎工作。
  3. 在每个spec文件中为每个redis-connection发生一个模拟。 听起来很糟糕的pipe理。 当Mocha最初运行服务器时也可能不起作用

有没有其他方法呢? 我觉得我的解决方法可能暂时工作,因为我不经常使用这种依赖关系,但我更喜欢一个更具可扩展性的解决scheme。

谢谢