Запросить кнопку с конкретным текстом - PullRequest
0 голосов
/ 16 октября 2019

У меня есть тест (Jest), чтобы определить, существует ли кнопка:

it('renders a signup button', () => {
  expect(sut.getByText('Sign up for free')).toBeDefined()
})

Этот тест, потому что в компоненте есть и кнопка И заголовок с текстом «Зарегистрируйтесь бесплатно».

Screenshot showing both a heading and button with

Можно добавить к кнопке свидетельство, но я бы предпочел следовать принципу реагирования-тестирования-библиотеки моделированияповедение пользователя.

Я считаю, что законно, что пользователь захочет "нажать кнопку с надписью" Зарегистрироваться бесплатно "". В этой ситуации указание типа элемента HTML имеет смысл, поскольку <button /> является отличительным элементом для пользователя, а не <h2 /> против <h3 />.

. Как я могу сделать запрос? для элемента кнопки с надписью "Зарегистрируйтесь бесплатно"? Например, может ли getByText() быть дополнительно ограничен селектором запросов?

Ответы [ 2 ]

1 голос
/ 17 октября 2019

Вы можете передать параметры своему запросу, чтобы изменить его поведение по умолчанию:

getByText('Sign up for free', { selector: 'button' })

Вы можете найти полную документацию здесь

1 голос
/ 16 октября 2019

Вы можете сделать это так:

getByText('Sign up for free').closest('button')

Подробнее о closest от можно прочитать здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...