Сравнение ScalaTest и Spock

Чем отличаются скалатест и спок? какова добавленная стоимость каждого? Что более гибко для разработки, основанной на поведении (BDD)? Пожалуйста, не могли бы вы поделиться некоторыми мыслями по этому поводу?

Я хочу начать BDD, я хочу выбрать один из двух, поэтому я хотел бы принять взвешенное решение. Следовательно, я сначала получаю максимум информации, особенно с учетом того, что я программист на Java, и у scala, похоже, есть кривая обучения, которая важна.

Любые советы или идеи или возвращение из опыта будут приветствоваться.

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


person MaatDeamon    schedule 19.04.2013    source источник


Ответы (2)


Короче говоря, я бы рекомендовал использовать ScalaTest для тестирования кода Scala и Spock для тестирования кода Java или Groovy. (Конечно, с помощью ScalaTest также вполне возможно тестировать Java-код.) Почему бы не попробовать оба инструмента и не остановиться на том, который вам удобнее?

Отказ от ответственности: я создатель Спока.

person Peter Niederwieser    schedule 20.04.2013
comment
Питер здесь очень щедр. Возможности Spock, без тени сомнения, настолько потрясающие, что для меня они оставляют все тестовые фреймворки далеко позади. Сказав это, было бы здорово, если бы @Peter мог прокомментировать, действительно ли Spock работает в качестве среды тестирования для Scala ... поскольку я читал старый пост, в котором упоминается, что функция Spock зависит от компилятора? - person Beezer; 20.08.2017

Хотя я согласен с ответом Питера, я хотел бы изложить свою точку зрения на это.

И ScalaTest, и Spock обеспечивают беглый тест BDD. Однако я считаю, что лучшая особенность Spock заключается в том, что вы можете создать один сценарий с несколькими наборами данных и ожидаемыми результатами. Это очень похоже на Cucumber Scenario Outline, только выполняется на уровне модульного тестирования.

Я не могу найти другую среду/библиотеку модульного тестирования, которая делает это.

Таким образом, если вам нужно протестировать несколько входов/выходов для одного тестового сценария, используйте Spock, в противном случае не стесняйтесь выбирать то, что вам удобно.

person Wins    schedule 24.12.2015
comment
github.com/junit-team/junit4/wiki/parameterized-tests для той же полноты jUnit может то же самое, просто некрасиво - person Michal M; 20.03.2017
comment
Я так не думаю, параметризованный тест будет разрешать только максимальный один сценарий для класса модульного теста (для параметризованного конструктора). На параметризованном поле можно получить больше, но только уродливее. - person Wins; 20.03.2017
comment
Я согласен. Просто теоретически jUnit действительно имеет эту функцию, в то время как фактор уродства делает ее практически непривлекательной для использования там. - person Michal M; 20.03.2017
comment
Полностью согласен. Однако большинство разработчиков выбирают структуру, которую легко читать. Ведь тесты — это живая документация. - person Wins; 20.03.2017