【发布时间】:2017-12-16 08:08:17
【问题描述】:
我在与 Node.js 一起使用的全局对象周围进行 mocha 测试时遇到问题。
在索引文件中,我将值设置为全局变量
// index.js
global.enums = enumTemp
export default app
然后在另一个文件中使用它
// other.js
status = global.enums.object.status
它是 REST API,如果我向服务器发出请求,它运行良好。但是,当我使用 Mocha 测试时,我似乎无法获得 Node.js global variable 的值。大家有什么想法吗?
【问题讨论】:
-
变量必须是全局变量是否有原因?全局变量很丑,因为它们会引起各种头痛。您应该考虑将变量放在它自己的模块中,并在需要的地方使用它。
-
这个变量是我在启动服务器时从数据库中获取数据然后在另一个文件中使用全局变量的。
-
什么时候将变量设置为全局变量?如果涉及数据库,对我来说这听起来像是一个异步任务。您可能应该等到该值可用后再使用它:为此,您可以从获取该值的文件中导出一个 Promise,或者从您需要的地方获取该值。作为旁注,我同意@TobiKremer 关于全局变量的观点。
-
我已经使用
Promise来确保手头有来自数据库的数据。这里的问题是如何将全局变量与Mocha一起使用。我发现该解决方案对我有用。不管怎样,谢谢大家的关心。 :)
标签: javascript node.js testing mocha.js