Какие паттерны програмирования вы используете в автоматизации?

Начала изучать паттерны для личного развития. И вот интересно какие лучше всего и в каких ситуациях можно использовать в автоматизации. Например, каким образом можно использовать паттерн Стратегия я вижу. А вот что касается других, например Наблюдатель, Фабрика… Знаю, что преследовать идею использовать все и вся глупо. Просто думаю, что на конкретных примерах изучение пойдет легче. Спасибо

Фабрика для страниц, либо компонентов, либо елементов. Вообще если на джаве, то нужно юзать спринг, а вместе с ним все паттерны =)

для автоматизации?

Да, вы не используете?

Нет, как-то не приходилось. Теоретически про связку JBehave + Spring слышал, но как-то не видел в этом особого смысла

JBehave+Spring - это такое, спринг можно использовать и без JBehave,Spring + TestNG = связка которая решает

2 лайка

для самообразования, Вы не могли бы привести пример?

Почему для самообразования. Для того чтобы решать инженерные задачи. Применение спринг позволяет быстро и легко управлять зависимостями, скажем вот как вы решаете проблему инициализации страниц? Я решаю так:

@Component
class MainPage{

}
class Test{
@Autowired
MainPage mainPage;
}
1 лайк

Если я не ошибаюсь, то тестовый класс должен наследоваться от AbstractTestNGSpringContextTests (в случае с TestNG), как-то можно избежать этого наследования?

В Spring 4.x помоему можно просто обойтись аннотацией? А чем вам наследование мешает?

Мне просто нужно наследоваться от другого класса в тестовом классе.

наследуйте тот класс от AbstractTestNGSpringContextTests. Конечно было бы приятнее, если бы был интерфейс, но увы

Действительно, можно и так, спасибо.

Потому что в силу разных причин мы его точно использовать не будем. А посмотреть и знать, как можно, для себя, хотелось

По старинке, инициализацией объекта

Удобно. Возьму на заметку.

Спринг в автотестах… Не надо так…)
Вместе с спрингом придет очень много того, что вам не нужно.

4 лайка

Думаю, многие оценят, если вы зальете пример работы со спрингом в нашу БЗ. :wink:

2 лайка

Например?

У нас из шаблонов в основном Builder и фабрика. Используются для создания объектов близких по смыслу, но немного по разному обрабатывающихся приложением.

Для автоматизации UI использую паттерн Page Object или Screen Object в мобильной автоматизации

Ну во первых не очень понятно, зачем усложнять и нагружать проект всеми зависимостями, который тащит за собой спринг, при том, что очень реальная помощь от него сомнительна - все, что он может с легкостью делается без него.
Во вторых - код автотестов должен быть понятным, все должно быть на виду, в спринге же все скрывается “за xml файлами настроек”.
В третьих - при падении тестов например из за отсутствия коннекшна к базе - мы получаем адовый стектреейс из кучи фабрик и тому подобной фигни, хотя причина то вот она, лежит на поверхности.

Понятно, что многое из вышеперечисленного можно считать не сильными проблемами, но для меня лично не понятно, что вы выигрываете со спрингом? если просто хорошенько взглянуть, то он делает ооочень простые вещи, но приэтом их усложняет.

5 лайков