Jasmine 何时在量角器中分配变量?

Jasmine 何时在量角器中分配变量?,jasmine,protractor,Jasmine,Protractor,正如问题所说。更具体地说,我所说的变量将在文件中的多个descripe/it块中使用 似乎我的许多同事首先在全球范围内定义了我们的助手和期望条件/其他量角器属性 var helper = require('./ourHelper.js'); var expectedConditions = protractor.ExpectedConditions; 然后在descripe块中包含所有其他变量。我通常只是把所有的东西都放在根里。然而,有人告诉我,在定义someElement.getText()

正如问题所说。更具体地说,我所说的变量将在文件中的多个descripe/it块中使用

似乎我的许多同事首先在全球范围内定义了我们的助手和期望条件/其他量角器属性

var helper = require('./ourHelper.js');
var expectedConditions = protractor.ExpectedConditions;
然后在descripe块中包含所有其他变量。我通常只是把所有的东西都放在根里。然而,有人告诉我,在定义someElement.getText()之类的东西时,一些问题就是由这个引起的


这里的最佳实践是什么?

我们所做的是在
onPrepare()中使用
global


现在,在每个规范中,您可以只使用全局可用的
帮助程序
EC
变量。

所有我的页面对象都扩展了一个basePage,我在其中存储多个页面中使用的任何方法或属性(即帮助程序)。这包括
ExpectedConditions
。如果您不使用页面对象(也许这是一个很好的开始理由),您可以创建一个baseSpec来代替/除了

与var helpers=require(“../../helpers/helpers.js”);在描述块之前?@VSO它更干净,并且遵循干燥原则。您不再需要在每次需要时“导入”文件。它将被导入一次,并在测试运行期间可用。
onPrepare: function () {
    global.helpers = require("./../helpers/helpers.js");
    global.EC = protractor.ExpectedConditions;
},