首页 > 解决方案 > 测试反应组件时无法识别 toContainReact 函数

问题描述

我正在尝试使用https://github.com/FormidableLabs/enzyme-matchers/blob/master/packages/jest-enzyme/README.md#tocontainreact

// 应用程序.js

import React, { Component } from "react";
// ...

import Pagination from "./components/Pagination";
// ...

export default class App extends Component {
  //  ...
  render() {
    return (
      // ...
      <Pagination />
    );
  }
}

我收到以下测试错误。

// App.test.js

import {mount} from 'enzyme';

import App from "../App";
import Pagination from "../components/Pagination";

it('renders component', () => {
  const wrapper = mount(<App />); 
  expect(wrapper.toContainReact(<Pagination/>)); // error
});

错误:

TypeError:wrapper.toContainReact 不是函数

如果我删除断言,则测试通过。

it('renders component', () => {
   const wrapper = mount(<App />); 
}); // test is passed, so I'm assuming no installation or configuration issues

那么,为什么 toContainReact() 不被识别?

编辑:

expect(wrapper.toContain(<Pagination/>));// 这也不起作用

包.json

"dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.3.2",
    "@testing-library/user-event": "^7.1.2",
    "enzyme": "^3.11.0",
    "enzyme-adapter-react-16": "^1.15.2",
    "jest-enzyme": "^7.1.2",
    ...
  },

标签: reactjsunit-testingjestjsenzyme

解决方案


推荐阅读