2009-02-09 3 views
2

Наше приложение зависит от множества ресурсов, предоставляемых другой системой.Создание тестовых ящиков JUnit

Для обеспечения существования этих ресурсов в настоящее время у нас есть тестовый пример JUnit (скорее всего, это тест интеграции), который берет список всех ресурсов в виде текстового файла, извлекает каждый из них и отслеживает успех/сбой.

Это очень длинный тестовый пример, который не очень удобен для пользователя. То, что мы действительно хотели бы иметь, - это что-то вроде одного тестового метода на ресурс.

Я знаю, что это не то, что должен был сделать Юнит. Но есть ли способ генерировать эти тестовые методы «на лету»?

Может быть, что-то более «элегантное», чем писать perl-скрипт для создания сотен методов?

Большое спасибо!

ответ

5

Возможно, вы захотите ознакомиться с параметризованными тестами. Это легче достичь в JUnit 4, хотя может быть сделано в JUnit 3. Смотрите этот вопрос Код: JUnit test with dynamic number of tests

+0

Jep! Идеальное решение, потому что вы можете реализовать FileInputStream в этом параметризованном тесте для загрузки списка ресурсов для проверки. – guerda

+0

В моем решении это почти идеальное решение. В IDEA параметризованные тесты грубо сворачиваются до одного. Это означает, что мы все еще не видим сразу, какие ресурсы недоступны. Однако спасибо за параметризованные тесты - я их не знал. –

0

Возможно, вы захотите взглянуть на the TestSuite class и создать свой собственный экземпляр (вместо того чтобы позволить одному из бегунов junit запускать все тесты в определенном каталоге) и/или подклассифицировать его - у TestSuite есть методы программно addTests, а затем вы можете запустить все тесты в пакете.