react-testing-library
в первую очередь предназначен для функционального тестирования черного ящика. Использование селекторов, специфичных для реализации, может означать, что тест проверяет реализацию, а не поведение, которое может наблюдать пользователь. Хотя использование data-testid
обозначает, что оно однозначно и было добавлено намеренно, чтобы упростить тестирование, в то время как селекторы могут быть неоднозначными и случайно изменяться при изменении реализации.
Это не означает, что обычные селекторы не должны использоваться, если они уже служат цели, если разработчик не использует их для тестирования реализации в функциональных тестах.
Это также не означает, что react-testing-library
нельзя использовать для тестирования реализации в изолированных модульных тестах. Это на самом деле может, но для этого отсутствуют необходимые функции, поэтому это приводит к большому количеству шаблонного кода по сравнению с Enzyme, который был разработан для этого.