众所周知,声明太多全局函数或变量不是一个好习惯。但是在Jasmine和Mocha中,功能就像“描述”和“它”,他们为什么更喜欢全局功能呢?也许我还没有完全理解他们? 请帮忙!
答案 0 :(得分:1)
全局函数并不总是坏的,它只取决于上下文。
在"正常"的背景下如果您不在本地定义内容,您可以非常轻松地污染全局范围。这就是我们使用闭包,对象文字等内容的原因。
Jasmine和Mocha使用全局函数,因为它是最简单的,全局函数直接定义了这些框架的独特语法。在这种情况下,您可能并不担心污染全球范围的单元测试框架。
另外,如果必须执行以下操作,则很难编写单元测试:
Jasmine.functions.unit.testing.basic.it("should do this", function() {
// etc.
});
这有点夸张,但你明白了。
答案 1 :(得分:0)
主要答案是因为它更容易和更快地编写。它们也可能用在没有模块的环境中,比如浏览器,所以如果加载jasmine,那么全局是唯一的方法访问茉莉花逻辑。
在这种情况下也会出现,因为编写Jasmine和Mocha测试的样式适用于声明性语法,因此几乎可以将describe
和it
作为测试的语法,而不是JS功能。