#reactjs #react-testing-library #jest-dom
Вопрос:
Я пытаюсь добавить @testing-library/jest-dom
что — то в свой проект, но безуспешно. Он устанавливается yarn в мои зависимости разработки и импортируется в setupTests.js с:
import '@testing-library/jest-dom';
Тест завершается неудачей с:
Invalid Chai property: toBeDisabled
40 | it('should be disabled', async () => {
41 | const button = screen.getByRole('button', { name: 'Create button' });
> 42 | expect(button).toBeDisabled();
| ^
43 | });
44 | });
Где я ошибаюсь?
Комментарии:
1. можете ли вы попробовать ожидать(кнопка).быть.отключенным() ?
2. @ManishSoni, похоже, ОП хочет использовать Шутку для этого теста. Изменение вызова устранило бы ошибку, но запустило бы тест с Чаем.
Ответ №1:
Похоже, вы используете и Чай, и Шутку в одном и том же наборе тестов, оба из которых имеют expect
функцию. В этом тесте вы ожидаете использовать Шутку, но это называется Чай. Чай expect
не имеет toBeDisabled
свойства функции, поэтому возникает ошибка.
Вы также импортируете чай в этот файл? Если это так, удалите этот импорт. Если вам нужны обе платформы тестирования, я бы рекомендовал разделить ваши тесты на разные файлы, чтобы в одном файле вы выполняли тесты только с одной платформой.
Комментарии:
1. Ах, я и не знал, что у них обоих есть
expect
! Это все ясно объясняет, спасибо! Я изменил егоexpect(button.disabled).to.be.true()
, чтобы он работал, как и ожидалось. Цените, что это не шутка, но ваш ответ объяснил первопричину.