Проблема с использованием react-testing-library
с Jasmine или другими альтернативами заключается в том, что react-testing-library
визуализирует компоненты так, как они ведут себя в браузере.В отличие от Enzyme, react-testing-library
не обеспечивает функциональность для изолированных и детализированных тестов, таких как поверхностный рендеринг и доступ к внутренним компонентам, таким как реквизиты.
Ожидается, что все компоненты, которые не должны быть отрисованы как есть, должны быть проверены.(вот пример Jest ), react-testing-library
не предоставляет никаких функциональных возможностей, способ их высмеивания остается на усмотрение разработчика.Жасмин не предоставляет способов макетировать модули и требует использования сторонних решений, таких как rewire
.Jest предоставляет функциональность для моделирования модулей, включая преобразование babel-jest
в модели модулей подъема, когда они используются с import
.
react-testing-library
использует DOM.Ожидается, что JSDOM следует использовать, если тест выполняется в Node.Jest изначально устанавливает JSDOM, а разработчик должен настроить его вручную с помощью Jasmine.Желательно запускать тесты в Node, а не в браузере, потому что таким образом модули могут быть динамически смоделированы из-за того, как работает Node require
.