Разница между ферментом, ReactTestUtils и библиотекой реакции-тестирования - PullRequest
0 голосов
/ 11 января 2019

В чем разница между ферментом, ReactTestUtils и библиотекой для тестирования реакции?

Документация ReactTestUtils гласит:

ReactTestUtils облегчает тестирование компонентов React в тестировании. рамки на ваш выбор.

В документации на фермент просто сказано:

Enzyme - это утилита для тестирования JavaScript для React, которая упрощает ее. чтобы утверждать, манипулировать и проходить вывод ваших React Components.

Документация библиотеки React-тестирования:

Библиотека реагирования-тестирования - очень легкое решение для тестирования. Реагировать компоненты. Он обеспечивает легкие функции полезности поверх реагируют-дом.

Почему на самом деле каждое решение проще, а чего нельзя достичь с помощью другого?

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Фермент предназначен для модульного / интеграционного тестирования. Его API был разработан для проверки реализации. Он предлагает пользовательский рендерер, который не требует DOM (для поверхностного рендеринга), ведет себя иначе, чем рендеринг React, и допускает вещи, которые важны для модульного тестирования, но невозможны или прямолинейны с рендерером по умолчанию, такие как синхронные обновления состояния, поверхностный рендеринг, отключение методы жизненного цикла и т. д.

Библиотека реагирования-тестирования предназначена для интеграции в черный ящик / тесты e2e. Он использует React Renderer и ReactTestUtils для внутреннего использования, требует реального DOM, потому что вывод его компонента утверждается в тестах, а не во внутреннем. Он не предоставляет средств для изолированных модульных тестов, но это можно сделать с помощью модуляций, содержащих компоненты, которые необходимо шпионить, высмеивать или заглушать другими способами, в частности jest.mock.

реаги-дом / test-utils и реакт-тест-рендерер содержат подмножество функциональных возможностей, на них построены энзим и библиотека реагирующих тестов. API ограничен и требует написания стандартного кода или пользовательских утилит для полноценного тестирования. React официально продвигает энзим и реагирующее тестирование библиотеки как лучшие альтернативы.

0 голосов
/ 11 января 2019

ReactTestUtils дает вам минимум для тестирования компонента React. Я не видел, чтобы он использовался для больших приложений.

Фермент и библиотека реагирования на тестирование - это хорошие библиотеки, которые предоставляют вам все инструменты, необходимые для тестирования вашего приложения. У них есть две разные философии.

Фермент позволяет вам получить доступ к внутренней работе ваших компонентов. Вы можете читать и устанавливать состояние, а также издеваться над детьми, чтобы ускорить выполнение тестов.

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

По моему опыту, Фермент легче понять, но в долгосрочной перспективе его труднее поддерживать. Реактивная библиотека реагирования заставляет вас писать тесты, которые в среднем немного сложнее, но вознаграждают вас большей уверенностью в вашем коде.

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