我有一个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。该列表在未填充的情况下使用。
关于如何更好地解决这个问题的任何想法?
提前致谢!
答案 0 :(得分:0)
在Jasmine中,发生在beforeEach(),beforeAll(),afterAll()或it()函数内的代码仅在测试实际运行时执行。所有其他代码(包括describe()函数)在测试运行器启动时发生。我建议在单个异步测试中完成所有工作:
it("tests all the elements", done => {
getElementFromOtherPage().then( elements => {
element.forEach( runTestOnElement );
done();
});
});
不是很优雅,但应该正常工作。