Написание тестов с помощью библиотеки тестирования зависит от деталей реализации моей библиотеки пользовательского интерфейса.

Я использую @testing-library чтобы проверить мой React проект, который использует Material-UIв качестве основной библиотеки пользовательского интерфейса. В качестве@testing-libraryпредполагает, что его основная философия - тестировать приложение точно так же, как пользователь будет его использовать. например, нажмите кнопку с надписью " Отправить" или отредактируйте ввод с меткой " Имя пользователя" и т. д. И библиотека тестирования дает мне несколько вспомогательных методов, напримерgetByText, getByLabel, так далее....

Моя проблема в том, что для некоторых тестов, например, тестов ввода форм, мне нужно запросить значение ввода или изменить его текущее значение. мне нужноgetByLabelчтобы запросить мою метку и перейти к родительскому компоненту, чтобы запросить входные данные, содержащиеся внутри. Библиотека предоставляетclosest Помощник запросов DOM, но он бесполезен в некоторых ситуациях, подобных той, которую я только что описал.

Мне нравится писать тесты таким образом, я имею в виду написание тестов с точки зрения пользователя. Но проблема в том, что я слишком сильно зависим от деталей реализацииMaterial-UI. Возможно, в следующем обновлении входные данные и соответствующая им метка не являются дочерними элементами узлов-предков и т. Д.

Что-то я делаю не так? Или это ловушка философии тестирования, которая@testing-library обеспечивает?

Это мой стек пакетов:

{
    "@material-ui/core": "^4.7.1",
    "@material-ui/icons": "^4.5.1",
    "@material-ui/lab": "^4.0.0-alpha.34",
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.4.0",
    "react": "^16.11.0",
    "react-dom": "^16.11.0",
    "react-scripts": "3.3.0-next.62"
}

0 ответов

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