问题:
我有一个帮助程序库,它从excel中读取数据并返回一个对象数组。这个库是一个异步函数,我无法使用此函数的结果设置全局数组。 我打算将全局数组作为量角器测试的输入源。
有什么办法可以做到这一点吗?任何帮助将不胜感激。
帮助方法:
'use strict';
var exceljs = require('exceljs');
var GetTestData = function(){
var colName = [];
var array = [];
this.getExcelData = function(page){
var workbook = new exceljs.Workbook();
return workbook.xlsx.readFile('./TestData/testLogin.xlsx').then(function(){
var worksheet = workbook.getWorksheet(page);
var headerRow = worksheet.getRow(1);
headerRow.eachCell(function(cell){
var colObj = {};
colObj = {header: cell.value, key: cell.value.toLowerCase()};
colName.push(colObj);
});
worksheet.columns = colName;
var iter = 0;
var rowObj = {};
worksheet.eachRow(function(row) {
if (iter != 0){
if(row.getCell('execute').value == 'Yes'){
headerRow.eachCell(function(cell){
rowObj[cell.value] = row.getCell(cell.value.toLowerCase()).value;
});
}
array.push(rowObj);
rowObj = {};
}
iter++;
});
return array;
});
};
};
module.exports = function(){
return new GetTestData();
};
我想使用从此函数返回的数组作为数据源并在其中循环我的测试。
'use strict';
var array;
var TestData = require('../../Libraries/ExcelFn.js');
describe('Login Page', function(){
beforeAll(function(){
testData.getExcelData('Login').done(function(result){
array = result;
console.log(array); //The array returns fine here
});
});
array.forEach(function(data){
it('should test for each set of test data', function(){
//Login Tests here
});
});
});
结果:未找到规格
无论如何我可以如何设置helper方法的结果(可能在beforeLaunch()中的参数中)并使用它来参数化我的测试?