Ошибка монтирования фермента - ошибка типа: невозможно прочитать свойство 'find' из неопределенного - PullRequest
0 голосов
/ 12 ноября 2018

Ошибка

TypeError: Невозможно прочитать свойство 'find' из неопределенного

когда я проверял свой реактивный компонент. Я использовал шутку и энзим для тестирования приложения реакции. Я пробовал разные методы, но все еще получил неопределенную ошибку.

test.js

import React from 'react';
import { mount } from 'enzyme';
import { StaticRouter } from 'react-router-dom';

import Button from '../index';

describe('<Button />', () => {
  let renderComponent;

  beforeEach(() => {
    renderComponent = (props = {}) => {
      mount(
        // <MemoryRouter>
        <Button href={href} {...props}>
          {children}
        </Button>,
        // </MemoryRouter>,
      );
    };
  });

  it('should render an <a> tag if no handleRoute is provided', () => {
    const renderedComponent = renderComponent();
    expect(renderedComponent.find('a')).toHaveLength(1);
  });
});

index.js (компонент кнопки)

import React, { Children } from 'react';
import PropTypes from 'prop-types';

import A from './A';
// import StyledButton from './StyledButton';
import Wrapper from './Wrapper';

function Button(props) {
  // render an anchor tag => a tag
  let button = (
    <A href={props.href} onClick={props.onClick}>
      {Children.toArray(props.children)}
    </A>
  );

  return <Wrapper>{button}</Wrapper>;
}

Button.propTypes = {
  handleRoute: PropTypes.func,
  href: PropTypes.string,
  onClick: PropTypes.func,
  children: PropTypes.node.isRequired,
};

export default Button;

1 Ответ

0 голосов
/ 12 ноября 2018

Вы должны вернуть компонент из функции renderComponent.

renderComponent = (props = {}) => {
  return mount(
    // <MemoryRouter>
    <Button href={href} {...props}>
      {children}
    </Button>,
    // </MemoryRouter>,
  );
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...