Интеграционные тесты с Play Framework, без использования светильников - PullRequest
4 голосов
/ 16 марта 2012

Я пытаюсь настроить автоматические интеграционные тесты для нового проекта. Используемый стек:
Играть! Рамки
SOAP Web-сервисы
Реляционная БД

Поскольку я хочу писать интеграционные тесты, мне нужно управлять тем, какие данные находятся в моей базе данных, это обычно делается с помощью встроенных в Play Framework Fixtures. Но так как я не использую модель Play Framework, это невозможно.
Кроме того, если у вас есть советы по обслуживанию набора тестовых данных?

Кроме того, если я делаю интеграционные тесты всего своего стека, я должен (в идеале) делать их вне проекта Play, тогда я потеряю преимущества инструментов тестирования play. Должен ли я оставить их в проекте Play?

Если я создам новый проект только для этих тестов, есть ли у вас какие-либо советы по использованию инструмента: selenium, htmlunit, ...

Заранее спасибо за любую помощь!

1 Ответ

1 голос
/ 17 марта 2012

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

В идеале для интеграционных тестов должен быть сервер интеграции, которыйимеет надлежащую базу данных и достаточно данных.Если у вас еще нет сервера интеграции, но фикстуры в Play Framework - это самый простой и простой способ получить правильные данные перед тестами.

В Play Framework есть три типа тестов.Модульные и функциональные тесты - это тесты JUnit, а тесты Selenium также известны как приемочные тесты.Все эти концепции на самом деле находятся за пределами базовой модели Play Frameworks, за исключением некоторых действительно удобных рецептов.Так что, честно говоря, я не мог понять озабоченность по поводу использования этой структуры.Например, вы можете использовать либо собственный синтаксис Selenium, либо использовать теги #{selenium /}.

Светильники также очень удобны, и если вы используете их эффективно, они довольно полезны.Под эффективностью я подразумеваю, что вы можете разделить свои данные, например users.yml, products.yml и т. Д., И загрузить и удалить их независимо, и это дает вам гибкость в ваших тестах.

До сих пор, если вы не уверены виспользуйте осветительные приборы, чем вы могли бы рассмотреть фиктивные данные, но я не предпочитаю фиктивные данные в интеграционных тестах.Вот пример тестовых данных с имитацией, и это за пределами Play Framework;)

Mockito

Если честно, у меня нет шансов поиграть с библиотекойно если у вас есть время, кажется, стоит попробовать.

Надеюсь, этот ответ поможет вам.

...