6

在 Scalatest 中,我有点不清楚使用 Spec 与 WordSpec 的优缺点。我认为 javadoc 提供了 WordSpec 与 FlatSpec 的某种程度的比较,但我不知道 Spec 和 WordSpec 之间的关系。

如果您对任何一种语法都感到满意,那么哪个会被认为是“最佳实践”?

WordSpec 是 Spec 的演变吗(如果有人认为 BDD 是 TDD 的演变)?或相反亦然?如果在这方面他们是完全平等的同龄人,我为什么要选择另一个呢?

也许这是一个“宗教问题”,但即使是双方都必须至少有一些他们喜欢指出的优点和缺点。我很想听听这些论点。

如果这是一个常见问题解答,我提前道歉:我在此比较的搜索中找不到任何内容。

4

1 回答 1

15

除了您使用 Suite 获得的默认转换之外,Spec 没有任何隐式转换,它将 === 放在所有内容上。WordSpec 有一些隐式转换将单词放在字符串之后,因此隐式转换冲突的风险略高。

Spec 允许无限嵌套。WordSpec 仅提供 3 级嵌套。

Spec 为您提供了更多关于如何构建规范文本的自由(尽管没有 FreeSpec 那么多的自由)。WordSpec 对如何构建文本非常规范。

WordSpec 比 Spec 更 DSLish。有些人更喜欢这样。

如果人们没有偏好,我将他们指向 Spec 作为默认选择,因为默认情况下它具有更少的隐式、更多的自由、更少的 DSL 和更多的嵌套,但主要是这种选择是一个品味问题。

于 2011-12-16T17:11:37.267 回答