导入到 test.js 时 AVA 测试给出未定义
AVA testing gives undefined when importing to test.js
我正在使用 AVA 作为节点测试和 javascript。
在 test.js
import test from 'ava';
import {valid, output, input} from './dependency.js';
test("Input is not a Empty String", t => {
t.not(input, ''); t.pass();
})
test("Correct output", t => {
var testInput = ['KittenService: CameCaser', 'CamelCaser: '];
var expected = 'CamelCaser, KittenService';
var actual = output;
t.deepEqual(actual, expected, "Result did match");
})
在第一次测试中它通过了,即使我的
var input = '';
同样在我的第二次测试中它抛出:
t.deepEqual(actual, expected, "Result did match")
| |
| "CamelCaser, KittenService"
undefined
在 dependency.js
module.exports = {valid, input, output};
var input = '';
var output = [];
我确实有函数后的输出值,但在 test.js 上它似乎没有从依赖性测试中获取输入或输出值。
我不确定如何解决这个问题。
AVA 使用 Babel 编译导入语句。由于 dependency.js
不是使用 Babel 创建的,因此 module.exports
对象在导入时被视为 default 导出。
改为这样做:
import test from 'ava';
import dependency from './dependency.js';
const {valid, output, input} = dependency;
test("Input is not a Empty String", t => {
t.not(input, '');
})
test("Correct output", t => {
var testInput = ['KittenService: CameCaser', 'CamelCaser: '];
var expected = 'CamelCaser, KittenService';
var actual = output;
t.deepEqual(actual, expected, "Result did match");
})
P.S。你通常不需要 t.pass()
.
我正在使用 AVA 作为节点测试和 javascript。
在 test.js
import test from 'ava';
import {valid, output, input} from './dependency.js';
test("Input is not a Empty String", t => {
t.not(input, ''); t.pass();
})
test("Correct output", t => {
var testInput = ['KittenService: CameCaser', 'CamelCaser: '];
var expected = 'CamelCaser, KittenService';
var actual = output;
t.deepEqual(actual, expected, "Result did match");
})
在第一次测试中它通过了,即使我的
var input = '';
同样在我的第二次测试中它抛出:
t.deepEqual(actual, expected, "Result did match")
| |
| "CamelCaser, KittenService"
undefined
在 dependency.js
module.exports = {valid, input, output};
var input = '';
var output = [];
我确实有函数后的输出值,但在 test.js 上它似乎没有从依赖性测试中获取输入或输出值。 我不确定如何解决这个问题。
AVA 使用 Babel 编译导入语句。由于 dependency.js
不是使用 Babel 创建的,因此 module.exports
对象在导入时被视为 default 导出。
改为这样做:
import test from 'ava';
import dependency from './dependency.js';
const {valid, output, input} = dependency;
test("Input is not a Empty String", t => {
t.not(input, '');
})
test("Correct output", t => {
var testInput = ['KittenService: CameCaser', 'CamelCaser: '];
var expected = 'CamelCaser, KittenService';
var actual = output;
t.deepEqual(actual, expected, "Result did match");
})
P.S。你通常不需要 t.pass()
.