酶测试:TypeError:expect(...).find 不是函数

Leo*_*ban 1 javascript testing jestjs enzyme

为什么.find在下面的代码上下文中不是一个函数?

import React from 'react';
import { shallow } from 'enzyme';
import toJson from 'enzyme-to-json';
import { AuthorizedRoutesJest } from './AuthorizedRoutes';

// Components
import {
  Main
} from '../../components';

const wrapper = shallow(<AuthorizedRoutesJest />);

describe('<AuthorizedRoutes /> component', () => {
  it('should render', () => {
    const tree = toJson(wrapper);
    expect(tree).toMatchSnapshot();
    expect(wrapper).toHaveLength(1);
  });

  it('should contain a Main component', () => {
    expect(wrapper).find(Main).toHaveLength(1);
  });
});
Run Code Online (Sandbox Code Playgroud)

所有失败测试的总结 FAIL client/containers/Routes/AuthorizedRoutes.test.js

AuthorizedRoutes 组件 › 应该包含一个 Main 组件

类型错误:expect(...).find 不是函数

Leo*_*ban 5

我用.find错了

以下是如何使用 find 的示例:

it('should contain a ConnectedRouter component', () => {
  expect(wrapper.find(ConnectedRouter)).toHaveLength(1);
});

it('should contain a Switch component', () => {
  expect(wrapper.find(Switch)).toHaveLength(1);
});

it('should contain 7 Route components', () => {
  expect(wrapper.find(Route)).toHaveLength(7);
});
Run Code Online (Sandbox Code Playgroud)