BDD в Scalatest: Spec против WordSpec или FlatSpec, что я должен использовать? - PullRequest
6 голосов
/ 16 декабря 2011

В Scalatest мне немного неясно, в чем преимущества и недостатки использования Spec по сравнению с WordSpec.Я думаю, что Javadoc обеспечивает некоторую степень сравнения WordSpec с FlatSpec, но я понятия не имею, между Spec и WordSpec.

Что будет считаться «наилучшей практикой», если вы знакомы с любым синтаксисом?1004 * Является ли WordSpec эволюцией Spec (если согласиться с тем, что BDD является эволюцией по сравнению с TDD)?Или наоборот?Если они абсолютно равны в этом отношении, почему я выбираю одного над другим?

Возможно, это "религиозный вопрос", но даже если это те, которые на каждой стороне, должны, по крайней мере, иметь свои плюсыи минусы, которые они любят указывать.Мне было бы очень интересно услышать эти аргументы.

Если это FAQ, заранее прошу прощения: я не смог ничего найти в своих поисках по этому сравнению.

1 Ответ

15 голосов
/ 16 декабря 2011

Spec не имеет неявных преобразований, кроме стандартных, которые вы получаете с Suite, который ставит === на все. В WordSpec есть несколько неявных преобразований для размещения слов после строк, поэтому у него немного больше риска для неявного конфликта преобразования.

Spec допускает неопределенное вложение. WordSpec обеспечивает только 3 уровня вложенности.

Spec дает вам больше свободы в том, как вы структурируете текст вашей спецификации (хотя не так много свободы, как FreeSpec). WordSpec довольно точно описывает структуру вашего текста.

WordSpec более DSLish, чем Spec. Некоторые люди предпочитают это.

Если у людей нет предпочтений, я указываю им на Spec как выбор по умолчанию, потому что он имеет меньше последствий по умолчанию, больше свободы, меньше DSL и больше вложенности, но в первую очередь этот выбор - дело вкуса. 1009 *

...