среда, 12 ноября 2014 г.

Spock - фреймворк для Javer-ов, которые не любят писать Unit тесты

Я Java программист! Написание кода - это основа нашей профессии. Где-то рядом находится и его тестирование через написание юнит тестов.

Признаюсь честно - не люблю писать тесты... Меня напрягает тот факт, что для проверки 5-ти строк кода мне надо написать еще 20. Ошибиться можно в любом коде, даже в том, что призван проверить другой. А ведь еще надо знать фреймворки (JMock, EasyMock, PowerMock), стандарты, best practices.

Поймите правильно, я не умаляю важность проверки того, что ты сделал. И, пусть без особого рвения, конечно же, пишу эти самые тесты. Меня парит то, как это делается. И тут вдруг, в одном из проектов, клиент навязывает нам Spock - очередной фреймворк для тестирования, только на Groovy. Надо, так надо. Не долго думая, вся команда в него ныряет, иииии.... Вот оно! Наконец-то тестирование стало простым, логичным, интуитивно понятным и, что не маловажно - быстрым!



Поясняю:
  • Тесты - это та часть приложения, которая никак не фигурирует в процессе работы приложения, но требует не мало времени в процссе его создания.
  • Groovy - это язык программирования который, как и Java, выполняется в JVM, но содержит много разных примочек, ускоряющих и упрощающих процесс разработки, что не всегда положительно влияет на производительность в целом.
  • Spock - это Groovy фреймворк для написания тестов в стиле BDD для Java и Groovy приложений.
Мы применили Spock в Groovy проекте. Продолжили применять в паралельно идущем Java проекте. Приложив меньше усилий, чем ожидали, мы добились хорошего покрытия с читабельными тестами, которые просто поддерживать.

Раньше я всех пытался убедить в том, что Flash лучше чем JavaScript (я знаю, что он вымирает, но он продолжает мне нравиться) и Wicket лучший Java Frontend фреймворк. Список пополнился эффективным фреймворком для Unit тестирования.

Мои выводы:
  • Писать тесты на Groovy проще и быстрее
  • Писать тесты в стиле BDD логичнее и читабельнее
  • Spock (BDD тесты на Groovy) - позволяет сделать этот процесс эффективным (меньше времени и нервов)

А тут презентация:


Комментариев нет:

Отправить комментарий