2011-02-01 4 views
1

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

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

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

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

ответ

3

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

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

Отказ от ответственности: Я являюсь создателем Спока.

0

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

https://github.com/Pragmatists/junitparams

Большое описание можно найти на сайте:

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

Для другие сталкиваются с этим вопросом ....

Смежные вопросы