Size: a a a

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

2019 October 22

AV

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

AV

Alexei Vinogradov in QA — Автоматизация
Если бы чейнинга не было - то рефакторнуть можно было очень быстро.
источник

AB

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

AB

Alexei Barantsev in QA — Автоматизация
привет тем, кто на конференциях советует активнее использовать копи-пейст :))))
источник

AB

Alexei Barantsev in QA — Автоматизация
чейнинг рефакторингу не мешает нисколько, усилий надо ровно одинаково
источник

AV

Alexei Vinogradov in QA — Автоматизация
Вместо Page1.upload;
             Page1.tapHere
             Page1.tapThere

заменили бы Page1 на CommonTappingPanel в нижних двух строчках.
источник

AB

Alexei Barantsev in QA — Автоматизация
не с тем боретесь :)
источник

AV

Alexei Vinogradov in QA — Автоматизация
еще раз прочитал код - всё читается, и всё понятно.
источник

AV

Alexei Vinogradov in QA — Автоматизация
Alexei Barantsev
чейнинг рефакторингу не мешает нисколько, усилий надо ровно одинаково
ну я не вижу как быстро рефакторнуть, если у тебя методы внутри page1 возвращают this и начейнены как на фотке. Рефакторнуть просто, но оооочень много ручных исправлений, не вижну как search&replace -ом можно поменять.
источник

AB

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

AV

Alexei Vinogradov in QA — Автоматизация
ну я птичка, мне такое сложно. Но если что - ткни какие именно.
источник

AV

Alexei Vinogradov in QA — Автоматизация
Я так понимаю условия. Было:

class Page1

method1() return this
method2() return this
method3() return this
click() return this

class Test1

new Page1().method1()
          .method2()
          .click()
          .method1()
          .click();

И теперь оказалось, что click() лучше подходит в class

class common

click() return что-то или ничего


Как переделать? С помощью функций рефакторинга в IDE.
источник

AB

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

AV

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

AB

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

AV

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

AB

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

AV

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

AB

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

AB

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