【问题标题】:jest: Test suite failed to run, TypeError: Cannot read property 'bind' of undefined开玩笑:测试套件无法运行,TypeError:无法读取未定义的属性“绑定”
【发布时间】:2017-07-30 06:35:40
【问题描述】:

我们在 react-native 中使用单元测试中的玩笑。它运作良好。 我们刚刚删除了 npm 并再次安装它,然后当我们尝试运行单元测试(npm test)时,我们收到以下错误,我们无法运行测试用例。

可能出了什么问题。

【问题讨论】:

    标签: react-native jestjs babel-jest


    【解决方案1】:

    将此添加到您的代码中。

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

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

    【讨论】:

    • 虽然此代码可能会解决问题,但 including an explanation 关于如何以及为何解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。请edit您的答案添加解释并说明适用的限制和假设。
    【解决方案2】:

    反应 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 后它运行良好。

    【讨论】:

      【解决方案3】:

      如果你在

      中添加了这行代码
      global.requestAnimationFrame = function(callback) {
          setTimeout(callback, 0);
      };
      

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

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

      删除此文件。这将有助于消除“Jest”单元测试中的这个错误。

      这对我有用,希望这对你也有用。

      【讨论】:

        【解决方案4】:

        我有同样的错误:

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

        类似于@Harish_N,但我使用的是 react-scripts

        在我的情况下,完全是关于 将测试相关的依赖项更新到 package.json 中的较新版本。

        【讨论】:

          【解决方案5】:

          尝试重新安装 jest 和 jest babel 最新版本

          npm install --save-dev jest

          npm install --save-dev babel-jest regenerator-runtime

          然后重新运行测试,它对我有用

          【讨论】:

            【解决方案6】:

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

            Issue in github repo of jest

            【讨论】:

              【解决方案7】:

              我遇到了同样的问题。我从仅使用 jest 的几个测试开始,然后我在另一台机器上使用 create-react-app 初始化文件夹并恢复以前的测试。之后,我切换回我当前的机器,执行 npm install 并运行测试。它给了我这个错误,所以我删除了 node_modules 并再次 npm install 。现在所有的测试都是绿色的。

              【讨论】:

                猜你喜欢
                • 2017-09-19
                • 2017-08-13
                • 2020-11-19
                • 2018-06-17
                • 1970-01-01
                • 2019-02-16
                • 2020-07-10
                • 2017-12-15
                • 2023-03-03
                相关资源
                最近更新 更多