Wicket / MVC Архитектурный / Тестовый Вопрос - PullRequest
3 голосов
/ 09 июня 2011

Мне пришлось что-то кодировать в Wicket (или взять любой MVC-фреймворк), в котором 2 переменные A и B дают логический результат C, который сообщает, является ли что-то (флажок) видимым или нет.

Теперь это логика представления, но, скажем, она не так тривиальна, как: C = A && B; Может быть, стоит провести какое-то автоматическое тестирование.

Куда бы вы положили эту логику? Можно ли поместить его на уровень Model / Service и протестировать с помощью JUnit? В моем понимании Модель и Услуги зарезервированы для бизнес-логики.

Или вы сохраняете его в View, и в этом случае вы тестируете его с помощью чего-то вроде Selenium?

Или построить какой-нибудь статический метод в каком-либо пакете утилит?

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

Ответы [ 3 ]

1 голос
/ 10 июня 2011

Я также использую сложную логику видимости в одном из моих проектов MVC для калитки, и я помещаю эту логику в сервисный слой , и я тестирую этот код с помощью JUnit .У меня также есть тест wickettester , который также проверяет видимость флажка.Я не знаю, как лучше, но думаю, что это неплохо.Надеюсь, поможет.

0 голосов
/ 10 июня 2011

Это логика представления и как таковая должна быть в слое представления.

Лично я бы проверил это с помощью Selenium. Это зависит от того, как вы работаете с видимостью, может быть достаточно использовать wicket tester, но вся логика представления должна быть протестирована в реальных браузерах с использованием такого инструмента, как Selenium.

Вам определенно не следует использовать метод статической утилиты, для чего смотрите здесь

0 голосов
/ 09 июня 2011

С технической точки зрения я бы сказал, что это звучит как логика, которая взаимодействует с состоянием представления.Таким образом, эта логика принадлежит докладчику / контролеру.

Поскольку презентатор / контроллер - это класс, вы должны иметь возможность проводить тестирование, не внося вид в микс.Я иду по идее MVP или MVVM.

...