я же сделал универсальное диалоговое окно, которое можно юзать при любых кнопках ОК (у нас диалоги то с русскими буквами ОК, то с английскими OK, то с малеьникими буквами, то с большимим)
@Block(@FindBy(xpath = "//div[contains(@class,'window')]"))
public class DialogWindow extends BaseHtmlElement{
@FindBy(xpath = "//button[contains(., 'Ok') or contains(.,'OK') or contains(.,'ОК')]")
public Button buttonOk;
@FindBy(xpath = "//button[. = 'Сохранить']")
public Button buttonSave;
}
когда я знаю, что ща появится диалоговое окно я просто делаю так
dialogWindow.buttonOk.click();
и мне по фигу маленькие там буквы или большие, русские или латиница
Браться за код и рыдать.
Когда компания начинает насильственно определятт рамки твоего влияния, нужно или менять что то или увольняться. Мне проще было быть на собеседованиях, и смотреть кого приглашают, потому что новичек, через месяц уже не должен быть новичком в компании, а если кто то хочет сэкономить на специалистах…ну, тогда пусть кому то заплатят больше…или вовсе другие.
Ну или подготовить доклад почему так плохо, и как сделать лучше. Или на докладе рассказать, как может быть лучше с вашим подходом…
Все же “насильно заставляют” - это не говорят “делай так”, как я понял, а говорят - “так должно быть”. То есть есть место для диалога, обсудить, понять, обьяснить, разобраться, почему так должно быть и должно ли так быть…
Может крутые ребята с большим опытом вам так сказали и оно действительно так лучше, хотя я даже не сразу сообразил, что тест делает, а значит новичку не сразу то и понятно будет, я новичок…
да брось, я шучу, меня извини, если юмор тонкий)
Ну бывает всякое, просто скажу на примере себя что это плохая практика вмешивания, и ставь вопрос ребром.
Раздуплить что то правльное, проще чем делать заведомо не правильно. Плюс самому ж новичку, не уж то не интересно научитсья чему то новому, и реально нужному?
нажать на кнопку “Управление НФА”? Типо перейти, так как стоит navigation, или это значит, что одна строка и кликает и еще что-то делает. И все это в одном флаконе - активировать “Управление НФА” в системе?
что такое скроллер? Получить кнопку “Открыть документ на редактирование”. Получил, а дальше я что с ней сделал? Или get - это кликнуть по кнопке со стрингом внутри?
scroller.getButton("Открыть документ на редактирование");
хм… Сложновасто как-то, сложно представить, как сложные вещи там будут написаны…
Рядовые сказки людей, которые скорее всего выше по рангу, а также не способных принять свою неправоту.
Я мог бы с ходу привести с 10-ток причин, почему это можно назвать говнокодом плохим тестом. Но вы наверное итак о них знаете.
Нужно отстаивать свою позицию. Но аргументы следует приводить не только технические. На одном тесте невозможно понять весь масштаб потенциальной трагедии. А еще лучше не учить идиотов жизни, а провести живой эксперимент: взять 2 мануальщика и посмотреть, сколько времени у них уйдет на освоение 2х предложенных подходов (каждому свой). Причем, не просто на осознание того, как писать тесты, а и оценку времени, потраченного на issues root cause analysis и потенциальный фикс / репортинг.
П.С. Или может я неправильно понял, о каких новичках идет речь? Потому что если речь идет о пусть даже любом java-ориентированном студенте - под хорошим менторством он через месяц будет понимать даже самый сложный (с точки зрения языковых конструкций) код. Так что для кого затеян этот фарс, кроме как для мануальщиков, я не могу себе представить.
Покажите им переписку, руководству, хотя наверное может и не стоит, лучше провести тест с фокус группой из автоматизаторов, как описали выше. Кста правильно сделали, что написали. Это хороший жизненый пример для людей, которые когда-то столкнуться с подобной ситуацией и будут тупить в ее разруливании…
тогда им трындец как сложно будет и будут учится сложным и непонятным и неправильным вещам А когда будут спрашивать на подобных ресурсах, люди будут в небольшом шоке
Я бы предложил аргументировать так:
При использовании best practices стоимость maintenance будет <посчитай для своих тестов, основываясь на показателе количества проапдейченных упавших тестов за 4 часа, к примеру>
Из минусов: новичку на проекте требуется некоторое время, чтобы вкурить то, что уже есть. Сколько - посчитай сам, основываясь на статистике в проекте.
При использовании того варианта, что там предложен, стоимость maintenance возрастёт. Насколько - посчитай. Прикинь кол-во тестов, прикинь кол-во общих элементов для нескольких тестов и представь ситуацию, что группа локаторов поменялась, например. Я прогнозирую в 3…5 раз. Прикинь, сколько ты часов в неделю занимаешься maintenance и умножь полученное значение на этот коэффициент. Затем посчитай, когда использование best practices начнёт давать профит. Сделай графики для расхода времени с использованием BP и без. Всё это предоставь заказчику и предложи ему выбрать, хочет ли он терять немного времени сначала или дофига времени потом.
Кстати, если автотестов у вас в проекте немного и апдейтятся они нечасто - может быть, его решение имеет смысл, ибо срок окупаемости BP будет много выше, чем срок жизни автотестов в проекте.