fullstack-development / react-redux-starter-kit

Modular starter kit for React+Redux+React Router projects.
https://demo.fullstack-development.com/
MIT License
91 stars 13 forks source link

demo app tests #1 #81

Closed chmnkh closed 5 years ago

chmnkh commented 5 years ago

Тут часть тестов. Вторым пр-ом с тестами выкачу тесты для хелперов. Тут и так жир уже.

chmnkh commented 5 years ago

@clicktronix @in19farkt @NikitaRzm эсли у вас нету замечаний то аппруве, пожалуйста)

in19farkt commented 5 years ago

Я сейчас сяду просматривать ПР, сегодня дам фидбек

in19farkt commented 5 years ago

Сейчас просматривал тесты и пришел к выводу, что тесты на снапшотах, которые мы на многих проектах нахерачили, полная дич.

Как со снапшотами:

Как без снапшотов:

clicktronix commented 5 years ago

@in19farkt я думаю снэпшопты все равно полезное говно. Особенно со сторонними либами - отслеживать прокидываемые пропсы куда проще. Они просто выступают в роли индикатора изменений в компоненте, особо сильной тестовой нагрузки не несут, но если сделать пару снэпшотов для компоненты, то при малейших изменениях они проинформируют тебя о том, что что-то изменилось. И по хорошему надо идти и смотреть, что ты накодил, а не нажимать U в консоли) Я думаю пара тестов на сравнение снэпшотов с разными пропсами для каждой вьюхи будет полезно. А более сложную логику, конечно, лучше тестить энзимом

in19farkt commented 5 years ago

По поводу пропсов. Фиксируются только не функциональные пропсы, и мне кажется смысла в этой фиксации не очень много. Ну зафиксировали что какой-то пропс куда-то передается, и че?

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

По поводу индикации изменений. А гит разве с этим не справляется? 99% крашнутых снапшотов будут информировать об измененной верстке, о добавленном поле в какой нибудь пропс-объект и о прочей не важной херне. Особенно мне нравилось изменять интерфейсы модели: добавляешь поле и у тебя 100500 снапшотов крашится :)

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

clicktronix commented 5 years ago

Не понял при чем тут гит) Ты накодил изменений во вьюхах, поменял пропсы. Запустились тесты, крашнулись снэпшоты, это заставляет тебя пойти в код тестов, посмотреть что там не так и если нужно, дописать тестов на новую логику. Тут главное не обновлять бездумно снэпшоты.

Я не говорю что надо тестить прокидывание пропсов в глубь с помощью снжпшотов, а просто сделать пару снэпшотов с разными пропсами, чтобы изменения во вьюхах заставляли заглянуть потом в тесты

in19farkt commented 5 years ago

@NikitaRzm если тебя всё устраивает, то дай аппрув и буду мержить)

Znack commented 5 years ago

Ееееее!!!