0

我正在使用 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");
})

在第一次测试中它通过了,即使我的

变量输入 = '';

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

t.deepEqual(actual, expected, "Result did match")
              |       |
              |       "CamelCaser, KittenService"
              undefined

在依赖.js

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

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

4

1 回答 1

1

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

PS你通常不需要t.pass()

于 2017-01-30T16:56:58.817 回答