Size: a a a

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

2019 October 22

MK

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

AB

Alexei Barantsev in QA — Автоматизация
фасад применяется когда у вас уже ЕСТЬ какая-то адская смесь классов и вы не хотите закладываться на эту сложность, поэтому делаете простую по структуре прослойку, которая эту сложность скрывает
источник

AB

Alexei Barantsev in QA — Автоматизация
а вы предлагаете СОЗДАТЬ сложность за фасадом. зачем? можно же сразу сделать нормально
источник

MK

Mem Kekovich in QA — Автоматизация
Я предлагаю варианты просто. У человека класс монолит, он хочет декомпозицию и не умеет.
источник

К

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

MK

Mem Kekovich in QA — Автоматизация
Вы хотите и чейнить и шашечки. Так не получится.
источник

O

Oleg in QA — Автоматизация
а если продолжать так делать, стек не кончится?
источник

AB

Alexei Barantsev in QA — Автоматизация
Mem Kekovich
Вы хотите и чейнить и шашечки. Так не получится.
получится, получится. я же выше предложил, как и чейнинг сохранить, и декомпозицию сделать
источник

AB

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

AB

Alexei Barantsev in QA — Автоматизация
ну или будет тот самый "фасад", который только усугубит ситуацию. сейчас у вас просто большие классы с кучей методов, а потом будут большие классы с кучей методов И сложная структура внутри
источник

MK

Mem Kekovich in QA — Автоматизация
Alexei Barantsev
получится, получится. я же выше предложил, как и чейнинг сохранить, и декомпозицию сделать
class Main:
public Main workOnPage1():
  var page1 = new Page1()
  page1.somecode()
  return this

etc..


вы про такое что ли?
источник

AB

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

BO

Boris Osyanin in QA — Автоматизация
Alexei Vinogradov
Состояние определять несложно. А если оно не то - то ничего более разумного пропуска я не вижу.
Один енд ту енд тест который заведет а потом удалит пользователя, и атомарные завести пользователя, и удалить существующего. Но это надо подготавливать базу
источник

MK

Mem Kekovich in QA — Автоматизация
Alexei Barantsev
я про вот это
а, теперь понял что вы имели ввиду. так тут смотреть надо что у него ибо ваш пример (абстрактно, если у него такая же логика) не лучше чем у него все в одном классе кмк (с точки зрения затрат)
крч надо знать исходную
источник

AB

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

MK

Mem Kekovich in QA — Автоматизация
Alexei Barantsev
почему всё в одном? метод uploadPhoto в классе-странице. а внутри него вызываются методы, которые вынесены в отдельный вспомогательный класс
я про его текущее состояние
с вашим я понял - все верно. внутри реализована логика и все разнесено как надо было изначально
источник

AV

Alexei Vinogradov in QA — Автоматизация
ну кстати да, отличный пример получился, почему чейнинг в тестах может стать палкой в колесах))
источник

AB

Alexei Barantsev in QA — Автоматизация
алё, чейнинг не виноват!
источник

AB

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

AV

Alexei Vinogradov in QA — Автоматизация
кстати особенно макаронности не вижу. Код читается? Читается. Что делает понятно? Понятно. Зачем? Не очень понятно, но может в домене будет понятнее.
источник