Управляемые данными инструменты тестирования интеграции для Java - PullRequest
1 голос
/ 01 февраля 2011

Я сталкиваюсь с тем, что я считаю общей проблемой, но я не нашел много дискуссий или существующих инструментов для ее решения. Я пытаюсь настроить систему интеграционных тестов (уже имеющую сильный набор модульных тестов), которая поддерживает QA для отправки входных данных и ожидаемых результатов (в форме плоских файлов, в идеале), которые можно запускать из стандартизированного класса junit.

У меня есть план развернуть здесь свой собственный, используя аннотацию junit @Paramaterized. Я представляю себе каждый набор данных и результатов, содержащий контрольный файл и все контрольные файлы, помещенные в один каталог. Метод генератора параметров будет сканировать этот каталог и возвращать список этих файлов. Затем конструктор теста прочитает этот файл и настроит входные данные и ожидаемые результаты.

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

Само приложение представляет собой чисто базовый инструмент типа ETL, который берет данные из нескольких входных файлов в различных форматах и ​​выдает результаты в базе данных. У меня уже есть несколько статических интеграционных тестов, которые используют Derby в базе данных памяти, чтобы проверить результаты для тривиальных входных данных, и я планирую использовать аналогичную систему для подтверждения данных здесь. Ожидаемые результаты будут в виде (key_value, column, expected value) троек. Я хочу использовать junit для связи с остальной частью нашей инфраструктуры тестирования и отчетов о результатах.

Ответы [ 2 ]

3 голосов
/ 03 февраля 2011

Взгляните на Spock , основанную на Groovy инфраструктуру тестирования с мощной поддержкой тестирования на основе данных.Spock предназначен для тестирования кода Java (и Groovy) и полностью совместим с JUnit (фактически тесты Spock выполняются с помощью JUnit).См. здесь для простого примера теста, который извлекает данные из базы данных.

В общем, ваш план звучит для меня разумно, и его также можно реализовать с помощью простых JUnit и @Parameterized.Спок и Groovy могут сделать вашу жизнь проще.Например, работать с текстовыми файлами и базами данных в Groovy намного проще, чем в Java.

Отказ от ответственности: я создатель Spock.

0 голосов
/ 21 марта 2015

Я предпочитаю Спока сам.Но я вижу, что существует инфраструктура JUnitParams, которая гораздо более читаема, чем прямые параметризованные тесты JUnit:

https://github.com/Pragmatists/junitparams

Отличное описание можно найти по адресу:

https://weblogs.java.net/blog/johnsmart/archive/2014/07/23/data-driven-unit-testing-java

Для других, кто задал этот вопрос ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...