我想在一个数组上运行循环,其中包含beforeEach
设置相应值的一组测试,it
也使用数组中的值。
以下示例显示了一般结构。调用myArray
时无法识别问题forEach
(请参阅注释行)
let myArray;
beforeAll(() => {
myArray = getArray();
log(myArray) // I can see its defined here
});
myArray.forEach((myValue) => { // myArray has no value here!!!
beforeEach(function() {
// do something with myValue
log(myArray) // I can see its defined here
});
it('my test', () => {
// do something with myValue
log(myArray) // I can see its defined here
});
}); // close loop
有this这样的示例循环遍历it
,但这并未解决循环的值的范围
答案 0 :(得分:0)
您应该将myArray.forEach
打包在其中一个beforeEach, it, afterEach, or afterAll
中,因为beforeAll
正在异步运行。
答案 1 :(得分:0)
您不需要使用beforeAll
来获取阵列的数据。
在定义测试套件之前,您可以提前获取测试数据。
let myArray = [1, 2, 3]; //get data for tests
describe('Name of the group', () => {
myArray.forEach(element => {
beforeEach(() => {
console.log('Data set before each: ' + myArray)
});
it('My Test', () => {
console.log('Test#' + element)
});
});
});
使用数据驱动方法
const using = require('jasmine-data-provider');
let myArray = [1, 2, 3]; //get data for tests
describe('Name of the group using "using"', () => {
using(myArray, element => {
beforeEach(() => {
console.log('Data set before each: ' + myArray)
});
it('My Test', () => {
console.log('Test#' + element)
});
});
});