testing-library-реагирует: класс утверждения существует (в целях стилизации) - PullRequest
0 голосов
/ 27 октября 2019

Из того, что я понимаю о testing-library-react, следует избегать использования container.querySelector, потому что весь смысл библиотеки тестирования состоит в том, чтобы тестировать в основном "как пользователь". Я согласен с этим, но как правильно, если таковые имеются, проверить, что имя класса (для реальных стилей) применяется, например, к тегу <p>?

В моем конкретном случаеНапример, текст должен быть одного из трех цветов, в зависимости от приоритета. Поэтому я хотел бы проверить, чтобы убедиться, что не только правильный текст существует, но и должен иметь правильный цвет.

const SomeComponent = ({ priority }) => {
  const priorityClass = priorityEvaluator(priority); # returns class with "color: red, green, or yellow"
  return (
    <p className={priorityClass}>Some text</p>
  )
)}

В тесте:

test("something", () => async {
  const { findByText } = render(<SomeComponent />);
  expect(findByText("Some text").toBeTruthy();
  # assert text is the proper color?
})

Isпредпочтительный способ использования jest-dom toHaveStyle / toHaveClass и нацеливание на элемент с помощью атрибута данных testid? Или есть лучший способ?

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