Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 运行测试用例以使用Jest测试函数_Javascript_Jestjs_Babel Jest - Fatal编程技术网

Javascript 运行测试用例以使用Jest测试函数

Javascript 运行测试用例以使用Jest测试函数,javascript,jestjs,babel-jest,Javascript,Jestjs,Babel Jest,我试图测试一个函数的几个测试用例,其中包含两个参数。这两个参数以及我在三个不同文件中定义的结果,然后将其导出。我也在使用Jest,但它抛出了“TypeError:(0,_index.default)不是函数”错误。有人能告诉我哪里出了问题吗。在沙箱中进行测试 测试文件: import appendToFilter from "./index"; import { res1, res2, res3, res4, res5, res6, res7, res8 } from "./Results";

我试图测试一个函数的几个测试用例,其中包含两个参数。这两个参数以及我在三个不同文件中定义的结果,然后将其导出。我也在使用Jest,但它抛出了“TypeError:(0,_index.default)不是函数”错误。有人能告诉我哪里出了问题吗。在沙箱中进行测试

测试文件:

import appendToFilter from "./index";
import { res1, res2, res3, res4, res5, res6, res7, res8 } from "./Results";
import { src1, src2, src3, src4, src5, src6, src7, src8 } from "./Source";
import { ip1, ip2, ip3, ip4, ip5, ip6, ip7, ip8 } from "./Input";

test("case1", () => {
  expect(appendToFilter(src1, ip1)).toBe(res1);
});
index.js

export function appendToFilter(filter, inputObjects) {
  // logic here
}

链接:

这是因为您没有任何默认导出,并且您正在从索引导入appendToFilter,而没有命名导入

使用

而不是

import appendToFilter from "./index";

您将函数作为默认导入导入,但将其作为命名导出导出。转到index.js并


export default appendToFilter
您的操作方式似乎是正确的,只是我不确定您的函数中的逻辑是什么。通常,您会将参数传递给函数,并根据您的逻辑预期返回值。也许您应该创建另一个关于如何测试函数的问题。我认为从我在测试文件中看到的情况来看,您的操作是正确的。您需要注意的是断言——toBe并不总是有效的,您需要在某些情况下尝试其他断言,如toEqual,尤其是数组和对象。检查Jest文档以获得更多可以尝试的断言
import appendToFilter from "./index";