我正在编写一个测试脚本,该脚本应该执行以下操作(这是一个示例,但是逻辑和结构相同)。
这些调用被包装在its()中,因为如果数组中的一个元素失败,那么它需要正常地失败并继续到数组中的下一个元素。
预期结果应为:
1 10 20 30 2 10 20 30 3 10 20 30
相反,我收到了 1个 2 3
这使我相信初始函数是异步调用的。
var arr1 = [1,2,3]
var arr2 = [10,20,30]
function arr_func_1(item){
console.log(item);
arr2.forEach(function(item){
it('should loop through arr2, function(){
arr_func_2(item);
})
});
}
function arr_func_2(item){
console.log(item);
}
describe('test case', function(){
arr1.forEach(function(item){
it('should loop through array 1', function(){
arr_func_1(item);
})
}
})
答案 0 :(得分:0)
测试应在运行之前定义。 should loop through arr2
测试是在should loop through array 1
运行时定义的,因此在测试运行期间将被忽略。
除循环外,它类似于:
describe('test case', function(){
it('should loop through array 1', function(){
it('should loop through arr2, function(){})
})
})
it
块不应在另一个it
中定义。
可能需要:
describe('test case', function(){
for (const item1 of arr1) {
it('should loop through array 1', function(){...});
for (const item2 of arr2) {
it('should loop through array 2', function(){...});
}
}
});