Size: a a a

2020 November 04

NN

Nikita N. in ☄️ effector
ну, может сам допру до чего-то
источник

DS

Dmitriy Shuleshov in ☄️ effector
Nikita N.
для начала вопрос как его отрендерить а потом еще отследить что евент вызвал смену стора
1. корректный рендер компонента - это один тест (не связан с эффектором, ну только если сторы засетать дефолтами)
2. с вызовом ивента корректно происходит смена стора - это другой тест
источник

c⁣

createStore<🦉>... in ☄️ effector
Nikita N.
ну вот есть компонент и хочу сохранить его снапшот в качестве теста, а потом я еще добавлю евентов и протестить userEvent
Эм. Снепшоты компонентов это абсолютно бесполезные тесты. Не надо их юзать для компонентов
источник

c⁣

createStore<🦉>... in ☄️ effector
Nikita N.
ну вот есть компонент и хочу сохранить его снапшот в качестве теста, а потом я еще добавлю евентов и протестить userEvent
источник

c⁣

createStore<🦉>... in ☄️ effector
Nikita N.
ну вот есть компонент и хочу сохранить его снапшот в качестве теста, а потом я еще добавлю евентов и протестить userEvent
источник

AO

Aleksandr Osipov in ☄️ effector
createStore<🦉> ⁣
Эм. Снепшоты компонентов это абсолютно бесполезные тесты. Не надо их юзать для компонентов
А компоненты вообще надо тестировать? Или достаточно только e2e на уровне всего приложения?
источник

c⁣

createStore<🦉>... in ☄️ effector
Nikita N.
ну вот есть компонент и хочу сохранить его снапшот в качестве теста, а потом я еще добавлю евентов и протестить userEvent
Ну и от меня, снепшот компонента тестирует детали реализации. А значит при изменении компонента без изменения логики поведения тест упадет, а значит не скажет сломано или нет
источник

AO

Aleksandr Osipov in ☄️ effector
Aleksandr Osipov
А компоненты вообще надо тестировать? Или достаточно только e2e на уровне всего приложения?
Допустим идеалистичный сценарий что вся логика вынесена в эффектор, а компонент только дергает события и рендерит сторы
источник

c⁣

createStore<🦉>... in ☄️ effector
Aleksandr Osipov
А компоненты вообще надо тестировать? Или достаточно только e2e на уровне всего приложения?
Я тестирую ui либу на поведение и особенности пропс, еще и скриншот тестами.
А также покрываю тестами компоненты страниц, закидываю состояние и проверяю, что страница адекватно рендерится, в том числе скриншот тестами
источник

AO

Aleksandr Osipov in ☄️ effector
createStore<🦉> ⁣
Я тестирую ui либу на поведение и особенности пропс, еще и скриншот тестами.
А также покрываю тестами компоненты страниц, закидываю состояние и проверяю, что страница адекватно рендерится, в том числе скриншот тестами
А как тестируешь поведение и что именно, пример можно?
источник

c⁣

createStore<🦉>... in ☄️ effector
createStore<🦉> ⁣
Я тестирую ui либу на поведение и особенности пропс, еще и скриншот тестами.
А также покрываю тестами компоненты страниц, закидываю состояние и проверяю, что страница адекватно рендерится, в том числе скриншот тестами
Тесты ui упрощают жизнь при рефакторинге.
Тесты страниц проверяют бизнес-задачи.
источник

AO

Aleksandr Osipov in ☄️ effector
И что используешь для скриншот тестов?
источник

c⁣

createStore<🦉>... in ☄️ effector
Aleksandr Osipov
И что используешь для скриншот тестов?
источник

c⁣

createStore<🦉>... in ☄️ effector
Aleksandr Osipov
А как тестируешь поведение и что именно, пример можно?
Дропдаун
- в начальном состоянии могу найти элемент с текстом. Я же передал список элементов в дропдаун, и там либо выбран по умолчанию, либо «выберите элемент». И один из этих текстов должен быть на экране.
- если есть лейбл, то я его могу найти.
- после клика на элемент, открывается полный список и я могу найти первые N элементов на экране
- клик на другом элементе сменяет это на новый
источник

c⁣

createStore<🦉>... in ☄️ effector
Ну и нельзя обращаться к классам, айдишкам и testid из теста
источник

AO

Aleksandr Osipov in ☄️ effector
createStore<🦉> ⁣
Дропдаун
- в начальном состоянии могу найти элемент с текстом. Я же передал список элементов в дропдаун, и там либо выбран по умолчанию, либо «выберите элемент». И один из этих текстов должен быть на экране.
- если есть лейбл, то я его могу найти.
- после клика на элемент, открывается полный список и я могу найти первые N элементов на экране
- клик на другом элементе сменяет это на новый
Это юнит тест используя какой-нить react-testing-library/render ?
источник

c⁣

createStore<🦉>... in ☄️ effector
Aleksandr Osipov
Это юнит тест используя какой-нить react-testing-library/render ?
Типа того
источник

c⁣

createStore<🦉>... in ☄️ effector
createStore<🦉> ⁣
Ну и нельзя обращаться к классам, айдишкам и testid из теста
Потому что тогда тест проверяет детали реализации, а помимо этого он не проверяет, что пользователь вообще имеет доступ элементу. Например, элемент может быть за пределами экрана, или невидим на момент тестирования
источник

TK

Tauka Kunzhol in ☄️ effector
Кстати о тестах, кто-нибудь писал тесты вовлекающие в себя эффект и синхронный хэндлер? jest тесты у меня завершаются раньше чем промис эффекта, поэтому приходится заворачивать в setTimeout
источник

TK

Tauka Kunzhol in ☄️ effector
может кто знает решение лучше
источник