玩笑错误 TypeError: (0 , _jest.test) is not a function

IT技术 javascript reactjs jestjs
2021-05-11 16:11:55

我收到错误:

TypeError: (0 , _jest.test) 不是函数

当尝试使用npm test.

我认为这可能与配置有关。我该如何解决这个问题?

文件sum.js

function sum (a, b) {
  return a + b
}

export default sum

文件测试/sum.test.js

import sum from '../src/sum.js'
import { test, expect } from 'jest'

test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3)
})

文件package.json

"devDependencies": {
    "babel-eslint": "7.1.1",
    "eslint": "3.18.0",
    "eslint-plugin-react": "6.10.0",
    "standard": "9.0.2",
    "webpack": "2.2.1",
    "jest": "21.0.1",
    "jest-cli": "21.0.1",
    "babel-jest": "21.0.0",
    "regenerator-runtime": "0.11.0"
},

"scripts": {
    "test": "standard && jest",
    "format": "standard --fix",
    "start": "webpack-dev-server --config webpack.config.dev.js",
    "build": "webpack --config webpack.config.prod.js"
},
2个回答

删除这一行:

import { test, expect } from 'jest'

你不需要从 Jest 导入任何东西。参见示例

我已经使用它在流程中运行

import expect from "expect";
const test = window.test;

也许它也对你有帮助。好像是让flow把它们都当成了any,远非完美,但至少文件的其他部分是可以检查的。


一个稍微好一点的“解决方案”是制作一个自己的文件,my-test.test.js其中包含

export const test = window.test;
export const expect = window.expect;

test("dummy", () => {});

并像使用它一样

import {test, expect} from '../my/my-test.test';

这将丑陋集中在一个文件中。