Size: a a a

2020 September 03

G

Genn in JS for testing
П.С. при переюзании кода запускаются тесты из спеки, из которой тянутся методы/элементы
источник

G

Genn in JS for testing
я не был присутствовал при том разговоре, но вот)
источник

G

Genn in JS for testing
страдаем)
источник

G

Genn in JS for testing
Genn
П.С. при переюзании кода запускаются тесты из спеки, из которой тянутся методы/элементы
П.П.С и это, как бы, огромный минус) переюзаются путем export-а
источник

B

Bola in JS for testing
Genn
а еще есть такой, более общий вопрос: разрабы заказчика против пейдж-обжекта. как переюзать код из других спек? как избежать дублирования? сайпресс+js
источник

AP

Alexander Popov in JS for testing
Bola
но это не тест, ребят
это фикция
живой юзер не будет диспатчить
хотя бы один сценарий должен быть без js
та ладно не начинай...сайпрес тоже фикция?
источник

AP

Alexander Popov in JS for testing
типа - я не топлю ни за что сейчас, но прям так ругать всякие костыли - с сикулей останешься 🙂
источник

SK

Sergey Khristenko in JS for testing
Кажется, app actions решают меньше проблем чем создают. Интересно бы узнать отзывы от тех, кто использует их на настоящих проектах.
источник

B

Bola in JS for testing
Я предполагаю, откуда у разработчиков нежелание использовать РО
Потому что есть офиц.бест практис )
источник

G

Genn in JS for testing
Это реально выход
источник

G

Genn in JS for testing
РО
источник

OS

Oleksandr Shevtsov in JS for testing
Sergey Khristenko
Кажется, app actions решают меньше проблем чем создают. Интересно бы узнать отзывы от тех, кто использует их на настоящих проектах.
Апп екшены это не что-то пипец экстраординарное.
Так как обычные async/await не взлетят, нужно возвращать чейнеры. Первая ошибка пейджобджектоделов в сайпресе - "я хочу с функции вернуть текст, а оно не работает", именно из-за особенностей асинхронной модели.
Но что мешает сделать себе обьекты, в которых будут методы, которые делают какое-то действие на странице, и в случае чего возвращают чейнер, который ты обрабатываешь в следующем методе, либо передаешь алиасами в контексте теста.
Хочешь - хранишь локаторы в пропертях, хочешь - сбоку импортишь, какая разница. Люди настолько поехали с максимальным DRY в тестах, что тратят кучу времени непонятно куда, а о самом тестировании забывают.
источник

VG

Vitalii Grygoruk in JS for testing
> Люди настолько поехали с максимальным DRY в тестах, что тратят кучу времени непонятно куда, а о самом тестировании забывают.
Золотые слова!
источник

M

MnmlSniper in JS for testing
Oleksandr Shevtsov
Апп екшены это не что-то пипец экстраординарное.
Так как обычные async/await не взлетят, нужно возвращать чейнеры. Первая ошибка пейджобджектоделов в сайпресе - "я хочу с функции вернуть текст, а оно не работает", именно из-за особенностей асинхронной модели.
Но что мешает сделать себе обьекты, в которых будут методы, которые делают какое-то действие на странице, и в случае чего возвращают чейнер, который ты обрабатываешь в следующем методе, либо передаешь алиасами в контексте теста.
Хочешь - хранишь локаторы в пропертях, хочешь - сбоку импортишь, какая разница. Люди настолько поехали с максимальным DRY в тестах, что тратят кучу времени непонятно куда, а о самом тестировании забывают.
Золотые слова.
источник

B

Bola in JS for testing
А слова-то золотые
источник

SK

Sergey Khristenko in JS for testing
Oleksandr Shevtsov
Апп екшены это не что-то пипец экстраординарное.
Так как обычные async/await не взлетят, нужно возвращать чейнеры. Первая ошибка пейджобджектоделов в сайпресе - "я хочу с функции вернуть текст, а оно не работает", именно из-за особенностей асинхронной модели.
Но что мешает сделать себе обьекты, в которых будут методы, которые делают какое-то действие на странице, и в случае чего возвращают чейнер, который ты обрабатываешь в следующем методе, либо передаешь алиасами в контексте теста.
Хочешь - хранишь локаторы в пропертях, хочешь - сбоку импортишь, какая разница. Люди настолько поехали с максимальным DRY в тестах, что тратят кучу времени непонятно куда, а о самом тестировании забывают.
💯
только это ж не про апп экшэны.
судя по статье, апп экшены- это когда тест взаимодействует со страницей не через ui, а через внутренние "особенности реализации". То шо начинается с

if (window.Cypress) {


We have NOT changed the test code, instead we improved the application code
источник

OS

Oleksandr Shevtsov in JS for testing
Sergey Khristenko
💯
только это ж не про апп экшэны.
судя по статье, апп экшены- это когда тест взаимодействует со страницей не через ui, а через внутренние "особенности реализации". То шо начинается с

if (window.Cypress) {


We have NOT changed the test code, instead we improved the application code
Основная идея - не нужно ВСЕГДА ходить через юай. Если нужны прекондишены - лучше их делать через апи, бд, или програмно управлять состоянием. Тоесть, для определенного атомарного теста ты себе подготовил стейт, и дальше гонишь обычные шаги сценария, через юай. Пейдж обджекты же линкуются к разметке страницы и есть риск, что вместо нормального теста на 5-10-30 секунд мы получим офигенный класический е2е тест, как много где пишут (и я такое видел): юзер идет от страницы логина, потом пара действий, переход на другую страницу приложения, че-то поделали там, открыли новую вкладку с админкой, что-то наконфигурировали, вернулись к юзеру, что-то еще поделали, пара асертов и в конце логаут - крутой тест, бегает две минуты (в лучшем случае), проверяет кучу всего, но ты потом задолбешся дебажить каждый такой тест, если он упал.
источник

SK

Sergey Khristenko in JS for testing
Oleksandr Shevtsov
Основная идея - не нужно ВСЕГДА ходить через юай. Если нужны прекондишены - лучше их делать через апи, бд, или програмно управлять состоянием. Тоесть, для определенного атомарного теста ты себе подготовил стейт, и дальше гонишь обычные шаги сценария, через юай. Пейдж обджекты же линкуются к разметке страницы и есть риск, что вместо нормального теста на 5-10-30 секунд мы получим офигенный класический е2е тест, как много где пишут (и я такое видел): юзер идет от страницы логина, потом пара действий, переход на другую страницу приложения, че-то поделали там, открыли новую вкладку с админкой, что-то наконфигурировали, вернулись к юзеру, что-то еще поделали, пара асертов и в конце логаут - крутой тест, бегает две минуты (в лучшем случае), проверяет кучу всего, но ты потом задолбешся дебажить каждый такой тест, если он упал.
💯
прекондишены через апи итак вроде все уже научились делать.
в статье как-то больше именно про "программно управлять состоянием". И мои сомнения именно про этот хак с if (window.cypress). В todo app оно, конечно, может и норм, а в настоящих проектах хз
источник
2020 September 04

OS

Oleksandr Shevtsov in JS for testing
Да че ж ты прицепился к тому   window.Cypress :D Пересмотрите статью еще раз - этот костыль чисто способ, который подходит конкретно этому приложению для прекондишенов, так как там нету бекенда вообще никакого. На реальных проектах обычно это заканчивается на апи, ну и манипуляциями с куками/локалСтореджом.
источник

OS

Oleksandr Shevtsov in JS for testing
> прекондишены через апи итак вроде все уже научились делать.
Я бы за всех прям не ручался. То что очевидно тебе - не значит, что очевидно всем вокруг.
источник