Для довідки - http://en.wikipedia.org/wiki/Single_responsibility_principle
У мене є тестовий сценарій, коли один модуль програми відповідає за створення записів у головній книзі. Є три основні завдання, які можна було б виконати -
- Перегляд існуючих записів у великій книзі у форматі таблиці.
- Створіть новий запис книги за допомогою кнопки створення.
- Клацніть на запис книги в таблиці (згаданий у першому покажчику) і перегляньте її деталі на наступній сторінці. На цій сторінці ви можете анулювати запис книги.
(На кожній сторінці є ще кілька операцій / перевірок, але заради стислості я обмежуся цим)
Тому я вирішив створити три різні класи -
- LedgerLandingPage
- CreateNewLedgerEntryPage
- ViewLedgerEntryPage
Ці класи пропонують послуги, які можна було б виконати на цих сторінках, а тести Selenium використовують ці класи, щоб привести заявку до стану, коли я міг би зробити певне твердження.
Коли я переглядав це свого колегу, тоді він перебіг обертів і попросив мене зробити один клас для всіх. Хоча я все ще відчуваю, що моя конструкція набагато чистіша, я сумніваюся, якщо я зловживаю принципом єдиної відповідальності