Подтвердить что ты не робот

Scala testing: Каков статус и отношения SUnit, ScalaTest, ScalaCheck, Specs и ParTest?

Scala предоставляет выбор различных рамок тестирования, но мне интересно, существуют ли различия в зрелости и стабильности, которые у них есть, и какие различные функции они предоставляют.

Существует ли конкретный вариант, который должен соответствовать всем видам разработки?

Могут ли различные структуры взаимодействовать друг с другом или с тестовыми участниками, ориентированными на другие языки?

4b9b3361

Ответ 1

  • SUnit больше не существует.
  • ScalaTest и Specs являются зрелыми, поддерживаются и получают улучшения (Specs2 недавно вышел, кстати). Выбор между ними - это вопрос вкуса.
  • ScalaCheck не имеет особого достоинства, но и ScalaTest и Specs имеют специальную поддержку интеграции ScalaCheck. Это считается важным инструментом.
  • ParTest используется только для компилятора, поскольку он проверяет такие вещи, как "делает ли это компиляция?". и "это не компилируется?", сообщения об ошибках и предупреждениях и т.д. Он не предназначен для разработки приложений и не должен использоваться для этого.

Ответ 2

ScalaTest и Specs имеют очень похожий синтаксис и список функций, и они оба принимаются сообществом. Они оба разрешают единичные и приемочные испытания.

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

SUnit был удален до начала программирования в Scala, поэтому я понятия не имею, как это работает. Я никогда не слышал о ParTest перед вашим вопросом.