gpt4 book ai didi

javascript - 导入 test.js 时 AVA 测试给出未定义

转载 作者:行者123 更新时间:2023-11-28 21:25:24 26 4
gpt4 key购买 nike

我正在使用 AVA 通过 Node 和 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

依赖.js

module.exports = {valid, input, output};
var input = '';
var output = [];

我确实有函数后的输出值,但在 test.js 上它似乎没有从依赖性测试中获取输入或输出值。我不确定如何解决这个问题。

最佳答案

AVA 使用 Babel 编译导入语句。由于 dependency.js 不是使用 Babel 创建的,因此 module.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()

关于javascript - 导入 test.js 时 AVA 测试给出未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41930183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com