TGViewer
LikeaDuck🦆 LikeaDuck🦆 @likeaduck · 1.41K subscribers
Post #99 2.42K
#automation #patterns

Давненько не писал ничего околотехнического, и сегодня про вопрос с собеседований "А какие паттерны знаешь"?

Что я думаю про PageObject и гордо звучащий PageFactory, про которые вспомнят 9 из 10 на этот вопрос?

Первое - это не "паттерн" в прямом смысле этого слова. В том смысле, что если мы будем делать ООП-программу про зоопарк, там будет обект "Жираф" с полями "private вес" и "private рост" и методами "поесть()" / "поспать()". Так же будет объект "Зебра" и объект "Вомбат". Можно ли сказать, что мы изобрели паттерн "ЗверьОбжект"? В нашей системе каждый зверек это объект. в котором есть свойства (поля) и методы, через которые мы взаимодействуем с ним.

Так вот, Web-тесты на Java (и другом любом ООП языке) - и есть программка про зоопарк (про веб-странички), и PageObject - это просто класс с полями и методами, описывающий предметную область. И если понимать это, то легко понять и точку зрения, например, Андрея Солнцева: "PageObject не всегда и не очень-то и нужен". Ровно в той же степени, как класс (объект) "Жираф" может быть не очень то и нужен, если в нашем зоопарке с ним не так уж и много взаимодействий. И если дизайн этого класса сделан плохо.

А PageFactory - это чтение аннотаций в классе, которому придумали нелепое название. Это не имеет никакого отношения к Factory - который, сам по себе, хороший паттерн и встречается часто.
А еще я встречал точку зрения, что если методы в PageObject возвращают ссылку this, то это PageFactory. Что тут сказать? Я не знаю откуда взялось мнение, что это так называется. В ООП у этого есть вполне конкретное название - Fluent interface.

Поэтому не надо на собеседовании говорить, что вы знаете паттерны PageObject и PageFactory.

На такой вопрос лучше ответить так:
Если вы меня спрашиваете про "паттерны тестировщиков" и хотите послушать про PageObject - я вам расскажу, но если вас интересует понимаю ли я, что такое Decorator, Singleton, Proxy, Factory (настоящую) - то сейчас я вам расскажу про них
.

И рассказать 🙂
Telegram LikeaDuck🦆 #automation #этоневажно Ввожу новый хэштег - #этоневажно. Дело в том, что я уже годы наблюдаю упертое желание потешить свое ЧСВ казалось бы важными постулатами в автоматизации, но большинство из них на самом деле не важны. Сегодня рассмотрим классику …
  • ❤ 29
  • 👍 14
  • 🔥 6
  • 👎 1
More from @likeaduck
  1. May 31, 2026Последние три дня связаны с конференцией Codefest'16 - для меня это была крайне редкая кон…
  2. May 12, 2026В семье все заболели. После конференции сказался, видимо, недосып и усталость, иммунитет о…
  3. Apr 29, 2026Любопытный факт: Оказалось, я на втором месте по числу выступлений на Heisenbug за все вре…
  4. Apr 22, 2026Неделя в Москве - тимбилдинг со своими командами (на фото героическая QA-core команда, кот…
  5. Apr 21, 2026Впервые за год в TG написал рекрутер, спросил интересно ли обсудить позицию руководителя к…
  6. Mar 17, 2026Кстати fun fact о накрутке опыта: В QA.GURU мне дали посмотреть резюме (оценить и, возможн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →