Автоматическое создание юнит-тестов - PullRequest
5 голосов
/ 25 января 2010

У меня есть веб-инструмент, который при запросе возвращает сгенерированные классы Java на основе аргументов в URL.

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

Обратите внимание, что эти классы не тестируют веб-сервер, они работают локально и преобразуют xml в пользовательский формат. Я не тестирую веб-сервер.

Эти классы затем должны быть помещены в определенную структуру пакета, скомпилированы и выполнены с известным набором входных данных и сравнены с известными выходными данными.

Я хотел бы делать это автоматически каждую ночь, чтобы убедиться, что сгенерированные классы верны.

Каков наилучший способ достичь этого?

В частности, какой лучший способ:

  1. получить код с веб-сервера и поместить его в файл
  2. скомпилируйте код и затем назовите его

Я уверен, что сочетание junit и ant сможет этого добиться, но есть ли и стандартное решение / подход для этого?

Ответы [ 4 ]

2 голосов
/ 25 января 2010

Прежде всего, чтобы ответить на ваш вопрос: Нет, я не думаю, что для этого есть стандартный подход. Это звучит как довольно необычная ситуация; -)

Учитывая это, я хотел бы написать для всех ваших тестов JUnit класс GeneratedCode, а затем, как только вы загрузите код, переименовать класс в GeneratedCode, скомпилировать и запустить свои тесты модулей.

2 голосов
/ 25 января 2010

У вас та же цель, что и при непрерывной интеграции; -)

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

например. Вы можете попробовать Хадсон .

0 голосов
/ 25 января 2010

Можно ли протестировать сгенерированные классы только после их публикации на веб-сервисе? У вас нет возможности проверить во время или сразу после генерации?

Одна из идей, если сгенерированный код не является сложным, - это загрузить его через GroovyClassLoader и запустить свои тесты с ним. См. эту страницу для примеров.

0 голосов
/ 25 января 2010

Вы должны создать «ложный» интерфейс для своего веб-сервиса, который (а) ведет себя так же и (б) возвращает известный ответ.

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

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