Из того, что я понимаю о 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
? Или есть лучший способ?