Javascript AVA测试在导入到test.js时提供未定义

Javascript AVA测试在导入到test.js时提供未定义,javascript,node.js,testing,ava,Javascript,Node.js,Testing,Ava,我使用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 = [

我使用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输入=“”

在我的第二次测试中,它抛出:

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创建的,
模块.exports
对象在导入时被视为默认导出

改为这样做:

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");
})

另外,你通常不需要
t.pass()

嘿,马克,我更改了代码,它给了我同样的结果。我的package.json代码
{“name”:“assessment”,“version”:“1.0.0”,“description”:“main”:“index.js”,“scripts”:{“test”:“ava”},“author”:“license”:“ISC”,“devdependences”:{“ava”:“^0.17.0”}
发现我必须将变量放在依赖函数中,然后你的方法工作了。