我在一些API文件中使用Redis缓存,这意味着我需要在测试中模拟一个依赖项。我们说我有以下文件结构
-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
中进行模拟。
易。
当我运行所有测试时出现问题,Mocha启动服务器。所有这些文件都将被带入routes.js
,但由于Redis未运行而失败。我可以看到一些方法:
redis-connection
的每个文件中,有条件地导入真实内容或基本模拟process.env.NODE_ENV === 'test'
。然后,如果您需要特定的行为,请将此模拟代理到相关规范文件中的更有用的模拟。康复,但似乎有效。redis-connection
的每次出现创建一个模拟。管理起来很糟糕。当Mocha最初运行服务器时,也可能无法正常工作还有其他方法吗?我觉得我的解决方法可能暂时有效,因为我不经常使用这种依赖,但我更喜欢更具伸缩性的解决方案。
由于