jest:Test suite failed to run,TypeError:无法读取未定义的属性“bind”

vecaoik1  于 2023-09-28  发布在  Jest
关注(0)|答案(8)|浏览(227)

我们使用了react-native中单元测试的jest。它运行良好。我们刚刚删除了npm并重新安装了它,然后当我们试图运行单元测试(npm测试)时,我们得到了以下错误,我们无法运行测试用例。

可能出了什么差错。

6mzjoqzu

6mzjoqzu1#

尝试重新安装这两个jest和jestbabel最后版本
npm install --save-dev jest
npm install --save-dev babel-jest regenerator-runtime
然后重新做测试,对我很有效

3hvapo4f

3hvapo4f2#

将jest-cli版本从18升级到19解决了这个问题。
Issue in github repo of jest

zpgglvta

zpgglvta3#

React 17+

"devDependencies": {
    "@testing-library/dom": "^8.11.1",
    "@testing-library/jest-dom": "^5.16.1",
    "@testing-library/react": "^11.2.7",
    "@testing-library/user-event": "^12.8.3",
    "@types/jest": "^26.0.24",
    "@types/react": "^17.0.27",
    "@types/react-table": "^7.7.7",
    "jest": "26.0.1",
    "ts-jest": "26.0.0",
    "typescript": "^4.5.4"
  }

错误是在jest 27+版本,但设置为26后,它工作得很好。

jjhzyzn0

jjhzyzn04#

我也有同样的问题。我开始只使用jest进行了几个测试,然后在另一台机器上用create-react-app初始化了文件夹,并恢复了以前的测试。之后,我切换回当前的机器,安装npm并运行测试。它给了我这个错误,所以我删除了node_modules并重新安装了npm。所有的测试都绿色了。

0sgqnhkj

0sgqnhkj5#

我犯了同样的错误:

Test suite failed to run, TypeError: Cannot read property 'bind' of undefined

类似于@Harish_N,但我使用的是 react-scripts
在我的例子中,完全是关于将测试相关依赖项更新到package.json中的更新版本。

t5zmwmid

t5zmwmid6#

如果您将这行代码添加到

global.requestAnimationFrame = function(callback) {
    setTimeout(callback, 0);
};

在你的“package.json”中名为“shim.js”或“setupshim.js”的文件:

"setupFiles": [
     <rootDir>/__test__/setup/shim.js 
],

删除此文件。这将有助于在“Jest”单元测试中删除此错误。
这对我有用,希望这对你也有用。

r7xajy2e

r7xajy2e7#

把这个加到你的代码里。

global.fetch = jest.fn().mockImplementation(() => mockFetchPromise);

字体:https://rishabhsrao.medium.com/mocking-and-testing-fetch-with-jest-c4d670e2e167

yk9xbfzb

yk9xbfzb8#

我在最新版本的Jest上遇到了同样的错误。我最终意识到在我的源代码中有一个循环依赖。解决循环依赖让我的测试再次工作
输出很模糊,但事后来看,堆栈跟踪给了我所需的线索,让我发现存在循环依赖问题。问题发生在dist/index文件上,然后是我的源文件,然后是我的src/index文件。下面是输出的样子,例如:

FAIL  src/smoke.test.js
  ● Test suite failed to run

TypeError: Cannot read properties of undefined (reading 'default')

  259 |   enumerable: true,
  260 |   get: function get() {
> 261 |     return _button["default"];
      |                      ^
  262 |   }
  263 | });
  264 | Object.defineProperty(exports, "Input", {

  at Object.get [as Button] (dist/index.js:261:22)
  at Object.RealButton (src/skeleton/InputSkeletons.js:45:57)
  at Object.require (src/skeleton/index.js:4:1)
  at Object.require (src/index.ts:45:1)
  at Object.require (src/setupTests.js:4:1)

相关问题