Какова цель FunctionalTest в PlayFramework? - PullRequest
2 голосов
/ 06 июня 2011

Я пишу тесты для своего проекта, и после модульных тестов я сейчас Написание FunctionalTest.

Но между целью теста Функциональный против Селена я немного растерялся.

Является ли функциональный тест только здесь, чтобы проверить, все ли я отправил любая страница (в основном в формате POST) должна возвращать то, что я ожидаю (200, 302, 404, 500) или есть еще? (например, проверить, является ли возвращенная страница один я ожидаю (например, «Страница входа»? или этот тест должен быть в Selenium?)

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

Что вы проверяете в своих функциональных тестах?

1 Ответ

8 голосов
/ 06 июня 2011

Чтобы ответить на ваш вопрос, возможно, проще взглянуть на все три типа тестов рядом друг с другом.

Unit Test - Для проверки отдельной единицы кода. Например, если бы у меня был класс Item, который составлял часть сайта электронной коммерции, у меня было бы несколько юнит-тестов, чтобы проверить, что класс Item функционировал должным образом. Это может включать в себя тест, чтобы доказать, что функция поиска возвращает элементы, которые соответствуют определенным критериям.

Функциональный тест - Чтобы проверить, что, когда отдельные устройства объединены, они работают вместе, как и ожидалось. Например, чтобы функция поиска работала, мы ожидаем отправить определенный RESTful URL для поиска элемента, который будет возвращать конкретный ответ. Он будет использовать наш контроллер и классы моделей для выполнения кода и достижения полной функции.

Приемочный тест - Также известный как тесты Selenium - это гораздо больший набор тестов. Они тестируют сценарий, через который может пройти пользователь, который может охватывать множество функциональных тестов, который, в свою очередь, может включать в себя множество модульных тестов. Они больше связаны с обработкой пользовательского пути или сценария, а не с отдельными частями функциональности.

Что касается типов утверждений, которые используются в FunctionalTests, я также использовал assertFalse и assertTrue, используя метод getContent для объекта ответа.

...