Дисклеймер: хоть варианты опроса и в полушуточной форме, но за ними лежит серьезный вопрос: насколько глубо стоит проектировать тестовый фреймворк? Поделитесь историями успеха
- Все эти PageObject и ScreenPlay шаблоны были актуальны в эпоху динозавров. Сейчас предостаточно тулзов с рекордерами: пишем быстрые тесты, как есть, без даже минимального проектирования, а те, что ломаются, просто заново перезаписываем. Пока четвертые ↓↓↓ пишут свои абстрации, мы уже всё сделали и пьем пиво. С - скорость!
- Пишем минимальные PageObject, чтобы осечь адское дублирование кода и ввести минимальную инкапсуляцию для читаемости, не более. Всё, что есть на странице: поля, кнопки, диалоги, зайцы, люди - вмешиваем в один класс. Любим мы, знаете, салаты из всего, что есть в холодильнике.
- Пишем PageObject, как завещал дядюшка Боб: свой PageObject под каждый отдельный блок/диалог на странице. Но не упарываемся: если есть повторяющиеся блоки на разных страницах (фильтры, поиск, …), то лучше их описать отдельно описать на каждой странице, чем париться с иерархией классов, наследованием, композицией, … . Это как или кушать в ресторане всякий раз свежеприготовленное только для тебя, или в столовке когда-то приготовленное для народных масс, уже остывшее или подогретое в микроволновке - ну не вкусно же!
- Тесты должны быть надежными и простыми в поддержке. А секрет успеха здесь прост и изучен - следуем принципам программирования, вводим абстракции, пишем по шаблонам, а сверху обсыпаем интерфейсами. Менее связанный код - быстрее и легче починка. Да, разобраться в этом новичку будет сложно, но всё равно легче, чем в адском спагетти у этих первых ↑↑↑.
0 участников