Angularjs Jasmine创建的规格取决于可变列表大小

Angularjs Jasmine创建的规格取决于可变列表大小,angularjs,jasmine,protractor,gulp-protractor,Angularjs,Jasmine,Protractor,Gulp Protractor,我有一个beforeAll函数,它进入我的网页,并根据页面中的元素填充列表。这些元素的数量取决于用户在UI中的操作 let variableList = [] beforeAll(() => {populate a list with elements found in the page} 然后,我想对列表中的所有元素进行相同的测试,我不想为每个元素编写规范(因为这些元素可能会发生变化,而且列表很长) 我不想在一个唯一的规范中使用该列表,因为运行该规范会花费我太长的时间。我宁愿为列表中

我有一个beforeAll函数,它进入我的网页,并根据页面中的元素填充列表。这些元素的数量取决于用户在UI中的操作

let variableList = []

beforeAll(() => {populate a list with elements found in the page}
然后,我想对列表中的所有元素进行相同的测试,我不想为每个元素编写规范(因为这些元素可能会发生变化,而且列表很长)

我不想在一个唯一的规范中使用该列表,因为运行该规范会花费我太长的时间。我宁愿为列表中的每个组件使用一个规范

variableList.map(element => {
   it('should run a spec for each list element', function(()=>{
     //Using element to perform the tests

   })
})
运行此代码时,beforeAll函数不会填充variableList。使用该列表时不会填充

有没有办法让我找到更好的方法


提前谢谢

在Jasmine中,beforeach()、afterEach()、beforeAll()、afterAll()或it()函数中出现的代码仅在测试实际运行时执行。所有其他代码(包括在descripe()函数中)在测试运行程序启动时发生。我建议在一个异步测试中完成所有工作:

it("tests all the elements", done => {
    getElementFromOtherPage().then( elements => {
         element.forEach( runTestOnElement );
         done();
    });
});

不是很优雅,但应该可以正常工作。

在Jasmine中,beforeach()、afterEach()、beforeAll()、afterAll()或it()函数中出现的代码仅在测试实际运行时执行。所有其他代码(包括在descripe()函数中)在测试运行程序启动时发生。我建议在一个异步测试中完成所有工作:

it("tests all the elements", done => {
    getElementFromOtherPage().then( elements => {
         element.forEach( runTestOnElement );
         done();
    });
});
不是很优雅,但应该能正常工作