【发布时间】:2019-07-14 18:12:50
【问题描述】:
我一直在尝试为一些模块化 ES6 代码添加单元测试。我有一个这样的项目结构:
project
└───src
| └───js
| cumsum.js
| index.js <--- entry point
└───test
tests.js <--- QUnit test code
这是cumsum.js中的内容:
export const cumsum=x=>{
var result = x.reduce((r, a)=> {
if (r.length > 0) {
a += r[r.length - 1];
}
r.push(a);
return r;
}, []);
return result;
}
现在,如果我通过在命令行中运行 qunit 来运行此示例测试,它将起作用:
const A=[1,2,3,4,5];
const expected=[1,3,6,10,15];
QUnit.test( "cumsum", function( assert ) {
assert.deepEqual([1,3,6,10,15],expected);
});
但如果我尝试导入实际的 cumsum 函数,它无法识别正确的 ES6 导入语法:
import {cumsum} from '../src/js/cumsum';
const A=[1,2,3,4,5];
const expected=[1,3,6,10,15];
QUnit.test( "cumsum", function( assert ) {
assert.deepEqual(cumsum(A),expected);
});
我只是得到错误
SyntaxError: Unexpected token {
有没有办法将 QUnit 与 ES6 模块一起使用?如果没有,是否有一个单元测试框架可以让我测试这些模块?
【问题讨论】:
标签: javascript unit-testing qunit