Size: a a a

QA — Автоматизация

2019 October 22

AV

Alexei Vinogradov in QA — Автоматизация
Alexei Vinogradov
А "нужно", потому что что?
Я ничего не возвращаю - void
источник

К

Капибара in QA — Автоматизация
Alexei Vinogradov
А "нужно", потому что что?
Уже куча кода написана, по патеррну Available methods
источник

К

Капибара in QA — Автоматизация
источник

К

Капибара in QA — Автоматизация
Есть вот такие страницы, я умру если буду переписывать через void
источник

AB

Alexei Barantsev in QA — Автоматизация
Капибара
Всем привет, пиишу на Java с реализацией PageObject и вот мне очень нужно разделить одну страницу на несколько классов, что бы было читаеме, но я хочу что бы я все методы мог вызывать из общей страницы. Что с этим делать? partial классов нет, множественного наследования то же ((
какое-то противоречивое желание. зачем дробить на классы, если все методы вы хотите оставить в одном классе?
источник

AB

Alexei Barantsev in QA — Автоматизация
что изменится, что улучшится?
источник

AB

Alexei Barantsev in QA — Автоматизация
"класс" это в первую очередь история про методы, а не про поля (которые всё равно скрыты)
источник

SV

Stanislav Vasenkov in QA — Автоматизация
Это ужасно нечитаемый тест
источник

К

Капибара in QA — Автоматизация
в том же телеги, есть страница с боковым меню и списком сообщений, что бы не пладить для них элементы и методы в одном классе, я хочу разделить их на несколько, но в тесте с отдной старницы их дергать, т.к. переключения будут не очень
источник

AB

Alexei Barantsev in QA — Автоматизация
декомпозиция работает не так, как вы думаете.
источник

AB

Alexei Barantsev in QA — Автоматизация
1) дробите на классы
2) делаете в основном классе более высокоуровневые методы
3) эти методы возвращают объект, в котором вызваны, как вы хотите
4) эти методы внутри обращаются к объектам выделенных ранее классов, вызывая в них серию более низкоуровневых методов
источник

AB

Alexei Barantsev in QA — Автоматизация
new UploadCoverPage(driver)
 .uploadPhoto("img1.png")
 .uploadPhoto("img2.png")
 .uploadPhoto("img3.png");
источник

AB

Alexei Barantsev in QA — Автоматизация
и, да, тесты придётся переписать, но это пойдёт им на пользу
источник

AB

Alexei Barantsev in QA — Автоматизация
а если тесты не менять — тогда зачем вам разбивать на классы? никакого смысла в этом нет. потому что вы хотите оставить тот же самый гигантский набор методов
источник

К

Капибара in QA — Автоматизация
Alexei Vinogradov
А "нужно", потому что что?
Вот кстати, ещё почему я не юзаю obj от страницу, т.к. есть тесты с несколькими driver и с ними уже тесты будут не очень смотреться
источник

MK

Mem Kekovich in QA — Автоматизация
Методы с большой буквы...
источник

AB

Alexei Barantsev in QA — Автоматизация
Mem Kekovich
Методы с большой буквы...
это самая меньшая из проблем в этом коде :)))
источник

К

Капибара in QA — Автоматизация
Mem Kekovich
Методы с большой буквы...
да это ещё не отрефакторили(
источник

К

Капибара in QA — Автоматизация
Alexei Barantsev
1) дробите на классы
2) делаете в основном классе более высокоуровневые методы
3) эти методы возвращают объект, в котором вызваны, как вы хотите
4) эти методы внутри обращаются к объектам выделенных ранее классов, вызывая в них серию более низкоуровневых методов
Спасибо, за совет, я думал так и сделать, но для самых простых дейсвтий, всёравно придёться или дублировать код или опять дробить на вызовы разных страниц
источник

MK

Mem Kekovich in QA — Автоматизация
Можно посмотреть в паттерн фасад как например
источник