Angularjs Jasmine创建的规格取决于可变列表大小
我有一个beforeAll函数,它进入我的网页,并根据页面中的元素填充列表。这些元素的数量取决于用户在UI中的操作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} 然后,我想对列表中的所有元素进行相同的测试,我不想为每个元素编写规范(因为这些元素可能会发生变化,而且列表很长) 我不想在一个唯一的规范中使用该列表,因为运行该规范会花费我太长的时间。我宁愿为列表中
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();
});
});
不是很优雅,但应该能正常工作