2010-06-21 3 views
3

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

Спасибо.

+3

Вы не делаете блок тест свинг приложений. Вы тестируете функциональность под качающимся приложением, каждый по отдельности. Затем вы получаете функциональные тесты для самого приложения. – corsiKa

+0

Попытка достичь «почти» полного покрытия линии не должна быть целью как таковой. Остерегайтесь таких целей, они часто приводят к ложному чувству безопасности (например, полный охват, но не проводятся реальные испытания). Цель должна заключаться в том, чтобы охватить как можно более рискованный (сложный) код, убедившись, что тесты актуальны. – jfpoilpret

ответ

-1

Я не могу полностью понять ваш вопрос. Комплексную стратегию тестирования трудно спланировать.

Но если вы тщательно подготовили свои тестовые примеры с помощью модульной системы тестирования (то есть JUnit), вы можете проанализировать свое программное обеспечение с помощью инструмента покрытия кода (то есть Cobertura).

Eclipse имеет хороший плагин для JUnit, а Cobertura может быть легко интегрирован в ваш проект сборки с использованием Ant или Maven.

+0

Не могли бы вы направить мне некоторые инструкции по интеграции плагина и Cobertura с использованием Maven –

4

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

Я понимаю, что код уже написан, так что практически вы работаете с устаревшим кодом. Рекомендуемое чтение для такой ситуации - Working Effectively With Legacy Code от Michael Feathers.

В целом, исключить элементы GUI для тестирования модулей. Поэтому самое главное - попытаться отделить логику, которая будет проверена от кода GUI, в POJO, которые легче выполнять модульные тесты. Затем начните писать модульные тесты для классов, содержащих логику, один за другим ... сначала попробуйте выбрать наиболее важные части кода, чтобы максимизировать возврат инвестиций. Часто хороший способ достичь этого - это просто, когда вы касаетесь класса/метода, пишите для него единичные тесты. Таким образом, вы можете постепенно увеличить охват кода.

1

Этот вопрос оставляет все открытым, какой тип тестирования вы действительно хотите сделать?

Тестирование модулей подразумевает проверку вашего пользовательского кода на уровне интерфейса метода, а инструментом для этого является JUnit.

Однако вы конкретно указываете, что это приложение Swing, так что вы ищете способ автоматизации взаимодействия с графическим интерфейсом для целей тестирования/регрессии? Это лошадь другого цвета. В этом случае, поскольку вы упомянули использование eclipse, вам может понадобиться посмотреть GUIdancer. Вы также можете использовать Google для автоматического тестирования пользовательского интерфейса и видеть, что имеется большой выбор доступных коммерческих продуктов, но нет общего решения, каждое из которых соответствует собственной экологической нише.

6

IMO FEST В настоящее время это лучшая структура для достижения этой цели. Просто напишите свои тесты JUnit, используя это. Более подробная информация находится в

http://fest.easytesting.org/

http://code.google.com/p/fest/

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