Вы можете легко сделать это с помощью реагирующей-тестирующей библиотеки.
Во-первых, вы должны понимать, что container
или результат getByText
и т. Д. Являются просто узлами DOM.Вы можете взаимодействовать с ними так же, как в браузере.
Итак, если вы хотите узнать, какой класс применяется к container.firstChild
, вы можете просто сделать это следующим образом container.firstChild.className
.
Если вы прочитаете больше о className
в MDN , вы увидите, что он возвращает все классы, примененные к вашему элементу, разделенные пробелом, то есть:
<div class="foo"> => className === 'foo'
<div class="foo bar"> => className === 'foo bar'
Это может быть не лучшим решением в зависимости от вашего случая.Не беспокойтесь, вы можете использовать другой API браузера, например classList
.
expect(container.firstChild.classList.contains('foo')).toBe(true)
Вот и все!Не нужно изучать новый API, который работает только для тестов.Это как в браузере.
Если вы часто проверяете класс, вы можете упростить тесты, добавив jest-dom в свой проект.
Затем тест становится следующим:
expect(container.firstChild).toHaveClass('foo')
Существует множество других полезных методов, таких как toHaveStyle
, которые могут вам помочь.
В качестве примечания, реагирующая библиотека-тестированияправильная утилита для тестирования JavaScriptУ этого есть много преимуществ перед другими библиотеками.Я призываю вас присоединиться к форуму по спектру , если вы новичок в тестировании JavaScript.