Библиотека тестирования React - «messageParent» можно использовать только внутри воркера.
Я тестирую компонент реакции с помощью RTL, и каждый раз, когда я запускаю тест, я получаю:
"messageParent" can only be used inside a worker
** Вот код
describe('Header', () => {
it('validates header component is rendered', () => {
const { getByTestId } = render(<Header patientName="Jake Bland" />);
expect(getByTestId('patient-name')).toHaveTextContent(/^Jake Bland$/);
expect(getByTestId('dateRange')).toBe(dateRange);
});
});
Любая помощь в этом будет принята с благодарностью.
4 ответа
У меня была такая же проблема, и это было вызвано звонком
toBe()
или
toEqual()
на HTMLElement. Итак, ваш наиболее вероятный виновник здесь, поскольку
getByTestId
возвращает HTMLElement:
expect(getByTestId('dateRange')).toBe(dateRange);
Я исправил свою проблему, протестировав вместо этого текстовое содержимое элемента.
expect(getByTestId('dateRange')).toHaveTextContent('...');
У меня была такая же ошибка, но я смог ее исправить, импортировав '@testing-library / jest-dom' в свой тестовый файл следующим образом:
import '@testing-library/jest-dom'
Оказалось, что указанный выше пакет является peerDependency для '@testing-library / react'. Таким образом Ошибка.
Если вы сочтете это полезным, поставьте лайк, чтобы другие разработчики могли извлечь из этого пользу.
Привет, у меня была такая же проблема после того, как я потратил некоторое время на поиски в Google, я нашел это: форум проблем github
Оказалось, что эта проблема вызвана версией node12, которую я понизил до версии 10, и все сработало, я также обновился до версии 14, и это тоже работает.
проверьте, какая у вас версия узла в терминале ur:
- node -v if (версия 12) обновите его!
- nvm install v14.8.0 (что-то вроде этого или leates one)
- nvm используйте v14.8.0 (или любую другую версию, которая выше 12, которую вы, возможно, захотите установить)
надеюсь, это поможет
Я столкнулся с этой ошибкой во время тестирования, чтобы увидеть,
<select>
было правильное количество вариантов при использовании этого:
expect(container.querySelectorAll('option')).toBe(2);
@testing-library/react, должно быть, пытается сделать что-то странное, чтобы получить длину коллекции HTML, как у меня. Поэтому я добавил
.length
на запрос:
expect(container.querySelectorAll('option').length).toBe(2);
Все было хорошо.