Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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 React testing library-TypeError:expect(…)。toHaveTextContent不是函数_Javascript_Reactjs_Jestjs_React Testing Library - Fatal编程技术网

Javascript React testing library-TypeError:expect(…)。toHaveTextContent不是函数

Javascript React testing library-TypeError:expect(…)。toHaveTextContent不是函数,javascript,reactjs,jestjs,react-testing-library,Javascript,Reactjs,Jestjs,React Testing Library,我遵循一个简单的教程来学习react测试库 我有一个简单的组件,如: import React, {useState} from 'react'; const TestElements = () => { const [counter, setCounter] = useState(0) return( <> <h1 data-testid="counter" >{ counter }</h1>

我遵循一个简单的教程来学习react测试库

我有一个简单的组件,如:

import React, {useState} from 'react';

const TestElements = () => {
  const [counter, setCounter] = useState(0)

  return(
    <>
      <h1 data-testid="counter" >{ counter }</h1>
      <button data-testid="button-up" onClick={() => setCounter(counter + 1)}>Up</button>
      <button data-testid="button-down" onClick={() => setCounter(counter - 1)}>Down</button>
    </>
  )
}

export default TestElements
我正在使用CreateReact应用程序,
package.json
显示:

"@testing-library/jest-dom": "^4.2.4",
我还需要加上笑话吗?

我想你在关注你在另一个问题中提到的内容

为了解决您的问题,您需要通过在测试文件中导入
“@testing library/jest dom/extend expect”
,从jest dom添加自定义jest匹配器。React测试库的中也提到了它

从“React”导入React;
从'@testing library/react'导入{render,cleanup};
导入“@testinglibrary/jest-dom/extend-expect”;
从“/TestElements”导入TestElements;
每次之后(清理);
...

编辑:我刚刚阅读了您问题下的评论,@jornsharpe似乎已经提到您需要导入
extend expect
,但我将此答案留在这里。

您是否已导入Jest DOM的extend expect?请参见
“@testing library/jest dom”:“^4.2.4”在使用create react APP时包含“
”。该依赖项包含在内,并应加载到
src/setupTests.js中(假设您使用的是默认模板)。但是你做了什么改变,这在一个全新的CRA应用程序中是可复制的吗?教程是什么?这是本教程,所以我没有创建CreateReact应用程序,而是从教程中克隆了该应用程序-作为一个简单的检查,向测试代码添加正确的导入是否可以修复它?它在我自己的教程()中与CRA4组合的示例中运行良好,但repo缺少setupTests文件。
TypeError: expect(...).toHaveTextContent is not a function
"@testing-library/jest-dom": "^4.2.4",