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

Почему эта ошибка возникает в следующем коде? Я уже импортировал "Имитация" из "библиотеки-реакции-тестирования", но в сообщении об ошибке указано, что "Имитация" является "неопределенной"

import React from 'react';
import { render, Simulate } from 'react-testing-library';
import CommentFeed from './CommentFeed';

const createProps = props => ({
header: 'Comment Feed',
comments: [
   {
      author: 'Ian Wilson',
      text: 'A boats a boat but a mystery box could be anything.',
   },
   {
     author: 'Max Powers Jr',
     text: 'Krypton sucks.',
   },
  ],
  createComment: jest.fn(),
  ...props,
})

describe('CommentFeed', () => {
  const props = { header : 'Comment Feed', comments : []};

  /* ... */

  it('allows the user to add a comment', () => {
    // Arrange
    const newComment = { author: 'Socrates', text: 'Why?' };
    let props = createProps();
    const { container, getByLabelText } = render(<CommentFeed {...props} />);

    const authorNode = getByLabelText('Author');
    const textNode = getByLabelText('Comment');
    const formNode = container.querySelector('form');

   // Act
    authorNode.value = newComment.author;
    textNode.value = newComment.text;

    Simulate.change(authorNode); // Where the error occurs
    Simulate.change(textNode);

    Simulate.submit(formNode);

    // Assert
    expect(props.createComment).toHaveBeenCalledTimes(1);
    expect(props.createComment).toHaveBeenCalledWith(newComment);
  });
});

Я искал эту проблему, но не смог найти никакой информации о поведении "Simulate"

2 ответа

Решение

Simulate был удален из библиотеки реагирующих тестов. Что вам нужно использовать сегодня fireEvent,

Вы можете использовать это следующим образом:

import { fireEvent } from 'react-testing-library'

// Then in your test

fireEvent.change(authorNode, { target: { value: newComment.author } })

Вы можете прочитать больше о fireEvent в официальных документах.

Попробовал var test = new Simulate();?

А потом делай test.etc....

Другие вопросы по тегам