Если нельзя, но очень хочется, то нужно обязательно и ничего в мире не стоит того, чтобы делать из этого проблему!


Интересна Java? Кликай по ссылке и изучай!
Если тебе полезно что-то из того, чем я делюсь в своем блоге - можешь поделиться своими деньгами со мной.
с пожеланием
столько времени читатели провели на блоге - 
сейчас онлайн - 

четверг, 17 октября 2013 г.

Тестируем на Groovy: Шаблончик Spring MVC веб приложения (Maven + Jetty) но с тестами на Groovy (WebDriver)

Такой же как и вчера примерчик, только теперь там тесты на груви (скачать исходник).

Немного статей собрал по ходу. Для создания чистого groovy проекта с нуля может помочь статья. Вот тут можно прочитать о том как добавить Groovy maven plugin в pom.xml для компиляции скриптов groovy в своем приложении. Можно качнуть (и распаковать в c:/java рядом с jdk) Groovy SDK, только я не уверен нужна ли она для maven проекта - один раз IDEA меня спросила про него, я и указал место жительства. Вот тут можно найти несколько книг по Groovy. А вот еще много быстрой инфы о Groovy.

Самое печальное, что потребуется сделать - вернуться к старой версии запуска юнит тестов (< 4) и экстендится от GroovyTestCase а так же начинать названия тестовых методов с test.
import groovy.util.GroovyTestCase

class MyTest extends GroovyTestCase {
 
  void testMyTestMethod() {
  }

}
Но это мелочи по сравнению с теми возможностями, какие дает groovy. Вот хорошая вводная статья по возможностям groovy .

Зачем это все?  Вот немного замечаний из прошлого опыта:

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

+ для начала достаточно создать source/test папку groovy, после в нее можно переместить часть классов/тестов переименовав расширение файлов c java на groovy. И продолжить работу. Обычно скомипилированный java код не вызывает ошибок компиляции на groovy.

+ все что можно было делать на java - все библиотеки доступны так же и для groovy.

для любителей дебага - IDEA хорошо справляется и с этой задачей.

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

- не все рефакторинги доступны. А ты точно всеми-пре-всеми пользовался? Я нет, мне главное самые примитивные (extract method/variable/constant/class, move ..., inline ...) чтобы были.

- (он же и +) не всегда компилятор подсказывает, что я не прав приходится чаще запускать тесты - это уже плюс. Тесты хочется делать более быстрыми, а запускать часто тесты хорошая практика по борьбе с дебагом.

- немного тебя ломать прийдется изучая что-то новое. Чтобы привыкнуть к языку рекомендую такое упражнение. Вычитываешь какую-то фичу, например - ставить точку с запятой в конце каждой строчки не обязательно, так же как писть return в последней строчке, возвращающей из метода результат. Берешь и во всех классах заменяешь это чтобы было под один стиль. Многократно совершаемое действие лучше отложится в памяти. А завтра можно будет попробовать что-то еще...

- ейфория от возможностей языка вероятно породит на начальном пути порцию говнокодо. С груви легче выстрелить себе в ногу.

Простой пример, зачем это. Вот метод на джаве
    public List<Item> getItems() {
        List<String> result = new LinkedList<String>();
        List<WebElement> elements = getFlightElements();
        for (WebElement element : elements) {
            result.add(new Item(element.getText()));
        }
        return result;
    }
А вот тот же метод на groovy
    List<Item> getItems() {
        getFlightElements().collect {
            new Item(it.text)
        }
    }
И это только цветочки...
Дальше возьмемся за Scala - говорят она круче!

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

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