Java дайджест #1. Тестирование

Дайджест сконцентрирован вокруг темы тестирования Java кода. Вопросы, связанные с UI-тестированием и основами QA, по возможности из обзора исключены.

  • JUnit — де-факто стандарт, популярный фреймворк для юнит-тестирования, первый популярный фреймворк из семейства xUnit. Официальная вики — материалы о подходах и идиомах тестирования.
  • TestNG — другой популярный фреймворк для тестирования. Думаю, он больше подходит для QA-автоматизаторов, чем программистов, которые пишут тесты для кода.
  • XUnit Test Patterns. Содержит много полезной информации о подходах в тестировании (например, описания Mocks, Fakes, Stubs and Dummies).
  • Mockito — очень популярная библиотека для работы с моками. Мне она нравится больше, чем более давняя, но все еще популярная EasyMock.
  • PowerMock(ito) содержит расширения для EasyMock/Mockito, которые решают такие проблемы, как, например, мокирование статических методов. Все же надо понимать, что если вам необходимо использовать эту библиотеку, то у вас что-то не так (скорее всего, с архитектурой).
  • Spock — интересный фреймворк для тестирования, более комплексный, чем предыдущие, более ориентирован на BDD. Имеет лучшую читабельность тестов благодаря тому, что написан на Groovy.
  • Anton Keks — Unit Tests — неплохое выступление про юнит-тестирование.
  • Not Using Test-First? You’re Doing it Wrong. Попытка убедить в том, что Test-First таки важен и полезен.
  • Custom Assertions in Java Tests. Хорошая статья о том, как на Java можно писать человеко-читаемые тесты. Автор рассмотрел примеры на основе AssertJ. Но лично мне больше нравится Hamcrest, тем более базовые матчеры уже включены в JUnit, начиная с версии 4-сколько-то-там.
  • CodeKata/TDDKata — это хороший способ «выучить» TDD как подход к написанию кода. Одна из самых популярных кат — это String Calculator.
  • Так же можно посмотреть пример решения другой популярной каты (Coin Changer Kata). Этот пример демонстрирует почему «фикня эта ваша Java» и почему «Java будет одним из мейнстримных языков еще долгое время».
  • Покрытие кода. Прагматичный подход. Напоминание о том, что не надо понимать лозунги буквально, и надо понимать значения тех метрик, которые вы собираете.


← Предыдущий выпуск: Java дайджест #0
Cледующий выпуск: Java дайджест #2. Java 8


От редакции:
Приглашаем читателей присылать свои дайджесты на интересные вам темы.

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn



2 коментарі

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Еще хорошо было бы включить всякие более высокоуровневые штуки — dbUnit, spring-test, и другие, о которых я, например, не знаю))

spring-test
Это специфично для спринга. Либы для тестирования (или скорее наборы вспомогательных утилит) есть под большинство популярных (и не очень) фрейворков. Для Stripes, Guice, Grails точно есть :)
dbUnit
От это на мой взгляд совсем не правильная вещь. Если уж вы не доверяете той прослойке которая работает с БД, то есть считаете что при операциях с БД могут быть проблемы, то необходимо делать честный интеграционный тест. Тестировать состояние БД — это не эффективно, ИМХО.
.
Но раз уж пошла такая пьянка, то вот «высокоуровневый фреймворк»: www.unitils.org/summary.html
С ним знаком только понаслышке, для себя ценного там не увидел, но может кому-то будет полезно. Почему не включил в обзор не помню :)
.
P.S. Прошу прощения за запоздалый ответ, только сейчас увидел комментарий.

Підписатись на коментарі