延迟动态测试创建

时间:2017-08-25 23:41:15

标签: node.js csv testing

我有一个大型CSV文件,其中包含复杂计算的输入和预期输出。我想用这个文件作为我用Node编写的计算器测试的基础。但是,似乎像Mocha和Vows这样的框架希望在读取和解析CSV文件后同步输出测试,而不是异步输出。

我可以通过将CSV转换为JSON并将其包含在我的测试文件中来解决这个问题,但我宁愿按原样使用权威的CSV文件,无论如何我只是好奇如何处理这种情况。感谢。

现在的基本方法(使用csvtojson):

    const cases = [];
    csv()
        .fromFile('../testdata/test.csv')
        .on('json', (rowObj) => {
           // convert columns to inputs and expected
           cases.push(inputs: inputs, expected: expected);
        })
        .on('end', () => {
           describe('Test cases', function() {
              cases.forEach((test) => {
                 it(`${dynamicCaseName}`, () => {
                   // do our calculation
                   assert.equals(ours, test.theirs);
                 });
              });
            });
        });

1 个答案:

答案 0 :(得分:1)

你可以完全分开测试和加载的逻辑,将加载器包装在一个阻止测试的promise中,直到填充数组(如果使用node8,则使用async / await非常简单,否则只是Promise.each结果

如果你真的不想这样做,你可以宣传你的测试框架