Любые хорошие архитекторы программного обеспечения согласятся с тем, что когда кто-то строит новый проект с нуля, он не должен носить границы в начале (база данных, графический интерфейс, внешние сервисы и т. Д.) Действительно, он должен построить свое сердце независимо от каких-либо бэкэнд и думать о них как о просто «плагинах» для приложения.Приемочные испытания, касающиеся графического интерфейса пользователя?
TDD и приемочные испытания способствуют тому, что для каждой новой функции:
- Написать тест неисправного приема (от конца до конца) для функции
- Drive и завершить код дизайн благодаря некоторым модульным тестам
- Закончено, как только приемочные испытания проходят.
Однако многие статьи объясняют, что приемочный тест является действительно действительно сквозным тестом, включающим в себя, таким образом, графический интерфейс (браузер (например, Selenium) или какой-либо другой интерфейс).
Не следует Приемочное тестирование должно основываться на СЕРДЕЛЕ ПРИЛОЖЕНИЯ и независимо от каких-либо границ? Это заставило бы меня подумать о графическом интерфейсе, например ...: s
Что такое хорошая практика? Напишите два вида приемочных тестов для каждой функции: один для бизнес-логики и один, обеспечивающий работу графического интерфейса?
Благодаря Tomasz! На самом деле, я владею этой книгой, но еще не закончил :) Мне нравится понятие «объект страницы», о котором вы упомянули. Итак, чтобы подвести итог (до того, как я снова открою книгу), приемочный тест, связанный с графическим интерфейсом, определит общий «драйвер» (независимо от какого-либо конкретного графического интерфейса), и это можно было бы ввести Spring например (экземпляр драйвера selenium для webapp).Таким образом, я отказываюсь от идеи «низкоуровневого» приемочного теста, непосредственно связанного с услугами или сущностями, но скорее определяет уникальный тест Acceptance, связанный с интерфейсом «Driver» для одной функции. Имеет ли это смысл? – Mik378
@ Mik378; более или менее. Вы получите «SeleniumDriver реализует драйвер». Весна (насколько мне нравится) здесь не нужна. Я считаю, что книга объяснит это гораздо более подробно и лучше меня. –
Я предположил, что тест определяет поле «драйвер» и инициализируется через Spring своим собственным application-context.xml. Почему весна? Поскольку это может позволить держать тесты нетронутыми в тот день, когда мы добавляем другой тип GUI => просто изменяя конфигурационный файл xml Spring (http://roger-almeida.a.blogspot.fr/2012/01/page-object-pattern-webdriver -spring.html). Кстати, спасибо за ваш отличный ответ :) – Mik378