Scala testing: Каков статус и отношения SUnit, ScalaTest, ScalaCheck, Specs и ParTest?
Scala предоставляет выбор различных рамок тестирования, но мне интересно, существуют ли различия в зрелости и стабильности, которые у них есть, и какие различные функции они предоставляют.
Существует ли конкретный вариант, который должен соответствовать всем видам разработки?
Могут ли различные структуры взаимодействовать друг с другом или с тестовыми участниками, ориентированными на другие языки?
Ответы
Ответ 1
- SUnit больше не существует.
- ScalaTest и Specs являются зрелыми, поддерживаются и получают улучшения (Specs2 недавно вышел, кстати). Выбор между ними - это вопрос вкуса.
- ScalaCheck не имеет особого достоинства, но и ScalaTest и Specs имеют специальную поддержку интеграции ScalaCheck. Это считается важным инструментом.
- ParTest используется только для компилятора, поскольку он проверяет такие вещи, как "делает ли это компиляция?". и "это не компилируется?", сообщения об ошибках и предупреждениях и т.д. Он не предназначен для разработки приложений и не должен использоваться для этого.
Ответ 2
ScalaTest и Specs имеют очень похожий синтаксис и список функций, и они оба принимаются сообществом. Они оба разрешают единичные и приемочные испытания.
ScalaCheck имеет принципиально другую философию. Тесты генерируют случайные экземпляры и проверяют некоторые свойства. Свойства и генераторы могут быть определены и составлены в приятной функциональной идиоме. ScalaTest и Specs позволяют писать свойства ScalaCheck внутри тестов.
SUnit был удален до начала программирования в Scala, поэтому я понятия не имею, как это работает. Я никогда не слышал о ParTest перед вашим вопросом.