Но мне тут попались тесты с помощью @testing-library, и пришлось в них вкатываться.
Я с ужасом обнаружил, что в
@testing-library
нет методов, благодаря которым я бы смог найти как-либо селектор. Поиск идет через текст, data-testid атрибут и подобное.
У кого есть опыт и там, и там, скажите, какие плюшки есть у
@testing-library
перед
enzyme
?
Можешь найти с помощью селектора.(setUp на скрине это render компонента с обертками) Насколько я понимаю у rtl подход больше как будто пользователь проверяет. Ты ищешь кнопку не по селектору, а по тексту. В итоге ты меняешь классы и тесты у тебя не падают.
ага, вижу. Render возвращает container, а у него уже есть методы для поиска. Только спрятали куда-то, извиняюсь, в задницу этот момент в документации
У react testing library просто другой подход к тестированию. Она предполагает что ты получаешь элементы так как их видит пользователь. Поэтому там поиски по тексту, label, placeholder и тд. И в крайнем случае они предлагают юзать data-test-id
выше уже правильно все ответили, добавлю лишь, что подход rtl по моему мнению лучше именно этим. использование rtl помогает делать сайт более accessible и при рефакторинге приходится переписывать меньше тестов
Обсуждают сегодня