
roma
25.04.2017
12:46:32
В любом случае ты лучше возвращай следующую страницу или воид.
Если валидный кейс и вернул новый объект, то напиши метод в нём isLoaded().
Если валидный кейс и воид, то используй или анономно этот метод из того класса.
Если невалиный кейс, то не важно что ты вернёшь, но у тебя должен продолжиться сценаирй с алертом, проверка или аццепт и далее правишь форму

Artem
25.04.2017
12:46:45
я за создание нескольких методов которые возвращают нужные значения при вводе определенных, так будет и в автотесте лучше всё выглядить и понятнее и без лишней логики

roma
25.04.2017
12:47:49
Fluent API не всегда клёвое решение если возвращаешь другой объект. По сенарию теста будет не ясен контект манипуляции. ПОэтому лучше если начинается работа с другой страницей/объектов, то явно указать объект

Evgeniy
25.04.2017
12:48:17
методы имплементируют _поведение_ они не должны быть в тыщах способов быть дублированы если на каждый чих срабатывает разный валидатор

Google

roma
25.04.2017
12:48:22
Так и флюент продолжаешь использовать ну и контекст манипуляции над страницами всегда явный

Aleksandr
25.04.2017
12:54:22
что за флюент? о чем речь?

Evgeniy
25.04.2017
12:54:31
подажжи, в тесте ты должен проверить, что сообщение - появилось. попап-появился, или урл остался на месте.
для подедржки фреймворка учитывая валидаторы ты в submit() методе пейджи описываешь условия возрата нужных тебе пейджей
чтобы другой тестировщик когда будет юзать этот метод не делал никаких супер явных приседаний с получением объекта после. а работал с вернувшейся какой-бы-то-ни-было странице,й на которой можно выполнить ассерит и найти нужное тебе поведение

Aleksandr
25.04.2017
12:55:34

Evgeniy
25.04.2017
12:56:34
проверка состояние текста в поп-апах - это уже не проблема пейдж-объекта. это уже конкретно твои юзкейсы же, оно не касается идеи того, что должен делать клик

Aleksandr
25.04.2017
12:57:27
текст же появляется после клика

Alexei
25.04.2017
12:59:24
Сделай пейдж обджект под попап
Ну если он не системный алерт - то стопуд

Evgeniy
25.04.2017
12:59:57
лол?

Alexei
25.04.2017
13:00:08
Что лол?

Evgeniy
25.04.2017
13:00:08
под тостер пейджобъект?

Alexei
25.04.2017
13:00:15
А что?

Google

Evgeniy
25.04.2017
13:00:20
под обычный попап? пейджу?

Aleksandr
25.04.2017
13:00:22

Alexei
25.04.2017
13:00:23
Какой тостер

Evgeniy
25.04.2017
13:00:33
а какие у нее будут методы, у этого пейджобъекта?

Alexei
25.04.2017
13:00:47
Ну супер, отдельный по, как в учебнике
Какие надо такие и методы, может и никаких
Закрыть попап вероятно будет метод.

Aleksandr
25.04.2017
13:02:54
это проблему-то не решит, а усугубит, не туда несет вас, мне кажется :)

Alexei
25.04.2017
13:03:13
С чего это?
Прямо содержание доклада на послезавтра

Aleksandr
25.04.2017
13:03:49
трансляция/запись будет?

Alexei
25.04.2017
13:04:06
Хрестоматийный пример, когда флуент только мешается

Aleksandr
25.04.2017
13:04:21
так, кто такой флуент?

Alexei
25.04.2017
13:04:22
Запись надеюсь будет, а трансляция вряд ли
Это который возвращает новую страницу - флуент
Его любят очень, если туториалы погуглить

Aleksandr
25.04.2017
13:05:09
короче, войд возвращать, мне пока этот совет ближе всего к решению показался
а два метода - похоже на херню

Alexei
25.04.2017
13:06:09
Тем не менее большинство туториалов предлагают 2 метода

Google

Aleksandr
25.04.2017
13:06:42
так это ж нелогично

Alexei
25.04.2017
13:06:45
Но херня может и не херня, но кода больше, магии больше. А зачем, если можно без?
А представь, что люди бояться делать void по религиозным соображениям. По другому сложно решить.

Aleksandr
25.04.2017
13:08:33

Evgeniy
25.04.2017
13:08:37
дело совсем не в том, что я учился по туториалам. В тестах есть тоже те, кто ПИШЕТ страницы, а есть те, кто пишет тесты из кирпичиков

Alexei
25.04.2017
13:09:15
Я про тебя ничего и не говорю. Людей которые так пишут тыщи

Aleksandr
25.04.2017
13:09:36

Alexei
25.04.2017
13:09:51
Нормально делай - нормально будет :)

Aleksandr
25.04.2017
13:37:13
блин, медленно пайтон читаю
короче, я сходил на сайт селениума
там есть про Page Object, в примере два метода
и теперь я снова сомневаюсь

Nikita
25.04.2017
13:38:39
factory, охренеть)

Aleksandr
25.04.2017
13:39:12
и реально кода меньше будет, если два метода сделать, не придется в каждом тесте создавать объекты

Evgeniy
25.04.2017
13:39:55
два метода это дичь, а потом у тебя появится 10 разных реакций на сабмит и ты напишешь 10 методов

Nikita
25.04.2017
13:39:56
но вообще я лично бы сделал как в варианте два

Maxim
25.04.2017
13:40:08
нам не важно, какая страница вернулась
разве ж не важно?

Evgeniy
25.04.2017
13:40:47
когда мы тестируем пользовательский сценарий - вообще пофигу :) потому что главное для пользователя - это результат , взаимодействие

Maxim
25.04.2017
13:40:55
если пользователя выкинуло на главную страницу с таким попапом - это не ошибка? :)
вполне себе результат - его выкинуло хрен пойми куда
зато с попапом

Google

Evgeniy
25.04.2017
13:41:37
ошибка, но я не стал расписывать что должно фвозвращать фэктори :)

Maxim
25.04.2017
13:42:27
так сюда еще и фабрику надо тащить? тогда где тут "меньше кода"?)

Evgeniy
25.04.2017
13:42:47
я не говорил, что я дам меньше кода :)

Maxim
25.04.2017
13:42:59
тогда зачем?

Evgeniy
25.04.2017
13:43:17
я говорил, что тесты должны содержать минимум приседаний с объектами
тесты - в бдд должны методами описываться + асерты

Admin
ERROR: S client not available

Evgeniy
25.04.2017
13:43:48
точка входа на кейс - получение исходной пейджи, всё.
как тестовый сценарий - набор шагов + expected условие, так и здесь.
но можно сделать грязно и быстро, кто мешает

Boris
25.04.2017
13:48:32
а это, REST API тут тестирует кто-нибудь джавой?

Maxim
25.04.2017
13:52:09
в итоге ты точно так же создаешь объект - result_page. Только еще умолчал приседания с определением в фабрике, какую же страницу вернуть.
имхо, нет тут ни минимума приседаний, ни простоты, ни однозначности.
и на первом скрине куда лучше. сделал действие - указал ожидаемую страницу)

Aleksandr
25.04.2017
13:55:16
ладно, с этим ясно, что мнения разделились

Evgeniy
25.04.2017
13:55:28
короче, объясню: ваш сайт может быть написан по ресту или нет - для конечной цели отдельно взятого теста - это не важно, он даже может перепиливаться по-маленьку.
Оставляя получение объектов в тестах - ты зашиваешься на то, что то, как ты сделал - потом будешь править во всех тестах, потому что внезапно у тебя поменялась логика кнопки сабмит. Меньше кода в тестах - больше в объектах и тем более в редиректах при переходах из объекта в объект
сайт не будет меняться, там есть 3 вшивых формы - окей - проще вызвать методы, в имеющихся 10 тесткейсах, может их и рефакторить потом не будет нужды

Aleksandr
25.04.2017
14:09:24
еще есть вопрос:
1. после нажатию на кнопке, загружается страница с анимацией - урл новый, конечно
2. после того, как приложение прилетело к клиенту урл опять менятеся, этот урл генерируемый
как правильно ждать второй страницы?

Maxim
25.04.2017
14:10:51
Все привет, знакомый посоветовал ваш канал)

Evgeniy
25.04.2017
14:10:56
А) по общему паттерну урла.
Б) по нужному тебе уникальному элементу для этой страницы
Хай

Ivan
25.04.2017
14:18:23

Google

Boris
25.04.2017
14:18:37
о,

Nikita
25.04.2017
14:20:59
а, Евгений уже ответил то же самое

Yaroslav
25.04.2017
14:43:37
Подскажите инструмент для записи видео рабочего стола?

Alexey
25.04.2017
14:44:20

Yaroslav
25.04.2017
14:44:37

Vlad
25.04.2017
14:44:42
Monosnap

Evgeniy
25.04.2017
14:44:46
Kaspersky Internet Security
?

Dieva
25.04.2017
14:49:09

Nikita
25.04.2017
14:51:35
QuickTime Player

Evgeniy
25.04.2017
14:59:16
OBS
fraps

Gnam
25.04.2017
15:03:22
им же можешь и с подключенных к компу айфонов писать записи

Yaroslav
25.04.2017
15:04:37
Спасибо всем добрым людям!) Более чем достаточно вариантов) А главное, что проверенные вами)

Aleksandr
25.04.2017
15:29:29
квиктайм только нельзя оставлять в режиме мониторинга, а то он заховает всю память)

Макс
25.04.2017
15:33:02
Для андроида ещё есть годная тула vysor

Vladimir
25.04.2017
15:54:04