тестирование Java Junit в цикле - PullRequest
1 голос
/ 22 августа 2011

У меня есть тест JUnit, который я хотел бы запустить из основного метода.Я хотел бы получить несколько записей из базы данных (в рамках метода main) и передать каждую запись в JUnit, используя объект данных, чтобы можно было проверить каждую запись.Могу ли я передать объект данных в метод запуска JUnit.Если нет, то как лучше всего это сделать.Существует так много разных сценариев, что я хотел бы использовать реальные данные из базы данных.Для проверки может быть до 5000 или более записей.

Спасибо, Даг

Ответы [ 3 ]

2 голосов
/ 22 августа 2011

Конечно, вы ищете параметризованный тестовый пример. Вы можете сделать это легко, используя JUnit вместо метода main().

Вам нужно Параметризованный для запуска теста.

Он будет запускать ваш тест с другими параметрами, передавая параметры через конструктор.

Здесь - простая статья, как это сделать. Вы также можете попробовать пример в документации, чтобы понять, как он работает.

2 голосов
/ 22 августа 2011

Вы хотите использовать параметризованные тесты JUnit 1002 *. На самом деле нет способа запустить метод main в тестовом примере JUnit.

Вдобавок к документам, вот сообщение в блоге, которое объясняет это немного лучше: http://ourcraft.wordpress.com/2008/08/27/writing-a-parameterized-junit-test/

0 голосов
/ 22 августа 2011

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

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

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