Начало в тестирование - PullRequest
       1

Начало в тестирование

0 голосов
/ 12 января 2011

Сейчас я нахожусь на этапе, когда у меня есть достаточно хорошее понимание программирования / разработки с использованием Java.

Может кто-нибудь сказать мне, как мне лучше начать использовать пакеты тестирования?Я посмотрел на Hibernate, но не уверен, куда идти с ним ...

Я использую Eclipse 3.5 на Mac OS X. Это случай написания скриптов для тестирования методов?Что такое юнит-тестирование?и т.д.

С чего мне начать?

Большое спасибо.Alex

Ответы [ 4 ]

4 голосов
/ 12 января 2011

Что такое модульное тестирование

Модульное тестирование - это написание кода (т.е. тестового кода), который передает известные входные данные в тестируемый код, а затем проверка тестируемого кода возвращает ожидаемые выходные данные.Это самое детальное тестирование, которое вы можете выполнить в приложении.Чтобы сделать это проще, обычно используется среда модульного тестирования.Для Java JUnit является самым популярным, но TestNG также примечателен.

Начало работы

Фреймворки модульного тестирования предоставляют инструменты для выполнения тестов, валидации и составления отчетов о результатах.Для вашей настройки Eclipse имеет встроенную поддержку JUnit .Eclipse может автоматически обнаруживать тесты, компилировать тесты и тестируемый код, выполнять тесты и сообщать результаты в среде IDE.Кроме того, об ошибках сообщается как информация трассировки стека, активируемая щелчком мыши, которая загружает соответствующий файл с заданным номером строки.

Поддельные объекты

То, что вы также работаете с Hibernate, предлагает вам также исследовать структуру поддельных объектов - например, jMock .Поддельные объекты обычно заменяются как часть кода в составе тестов и служат двум целям: (1) возвращать известные выходные данные и (2) записывать, что они были вызваны, и каким образом модульные тесты могут анализировать эту информацию как часть проверки.

Возможность использовать объекты Mock для упрощения тестирования основана на внедрение зависимостей .Это другие объекты, которые составляют тестируемый объект.Идея состоит в том, чтобы отделить зависимости (например, Hibernate), чтобы сосредоточиться на тестировании алгоритмов, которые манипулируют теми данными, с которыми вы работаете.

База данных

Однако, если у вас есть код, который нелегко с рефакторингом , или, возможно, вы хотите проверить код базы данных, вы также можете протестировать взаимодействие Hibernate.,В этом случае вы хотите базу данных в известном состоянии.На ум приходят три подхода:

  1. Восстановление резервной копии базы данных в начале каждого выполнения теста.
  2. Использование dbunit , который предоставляет собственные механизмы для поддержания состояния,
  3. Транзакционная блокировка с откатом.Обернуть весь случай обернутым try{} finally{}, где последний всегда откатывает транзакцию.
2 голосов
/ 12 января 2011

Джеймс Шор («идейный лидер в сообществе разработчиков программного обеспечения Agile») демонстрирует серию скриншотов, демонстрирующих его разработку на основе тестирования с использованием Eclipse.

http://jamesshore.com/Blog/Lets-Play/

1 голос
/ 12 января 2011

Хотя есть много способов начать тестирование, не существует «лучшего», поэтому нет смысла искать его в качестве отправной точки.

Найдите в Интернете хороший учебник по junit и сделайте это.Это будет абсолютно лучший способ начать ИМО.Не отвлекайтесь на покрытие кода или интеграцию с Hudson или другими задачами, которые находятся на периферии тестирования.Сосредоточьтесь на написании нескольких (или 10), если тесты в первую очередь.

Когда вы поймете основы, вы можете начать смотреть на другие инструменты, чтобы увидеть, отвечают ли они вашим потребностям лучше или хуже, чем junit.

1 голос
/ 12 января 2011

Сначала: Hibernate - это не тестовый пакет.

Теперь это не так, я бы посоветовал вам взглянуть на JUnit.Сначала ознакомьтесь с модульным тестированием, чтобы вы знали, что это такое (статья Википедии - хорошее место для начала), а затем попробуйте кулинарную книгу JUnit.Напишите несколько модульных тестов для небольшого фрагмента кода, чтобы увидеть, как он работает, а затем перейдите к более крупным фрагментам.

Пока вы это делаете, взгляните на другие инструменты разработки, такие как Cobertura (чтобы узнать, какхороши ваши тестовые покрытия) и инструменты статического анализа, такие как Findbugs и Checkstyle.Все они прекрасно интегрируются с Ant и, возможно, с Eclipse.

Если вы заинтересованы в улучшении ваших стандартов кодирования и систем сборки, тогда я настоятельно рекомендую использовать Ant, JUnit, Cobertura, Checkstyle и Findbugs вместе с сервером непрерывной интеграции.(например, Hudson или CruiseControl) и система контроля версий (например, git).С таким инструментарием вы не ошибетесь.

Существуют и другие фреймворки (TestNG, Mockito и т. Д.), Так что взгляните на них и решите, какой вы предпочитаете (РЕДАКТИРОВАТЬ: И какую работухорошо вместе. Mockito + JUnit - хорошая комбинация.)

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