在Scalatest中,我不清楚使用Spec与WordSpec的优缺点。我认为Javadoc提供了WordSpec和FlatSpec的某种程度的比较,但是我不知道Spec和WordSpec之间。
如果您对这两种语法都满意,哪一种被认为是“最佳实践”?
WordSpec是Spec的演进吗(如果人们赞成BDD是TDD的演进)?或相反亦然?如果在这方面他们是完全平等的同行,那我为什么要选择一个呢?
也许这是一个“宗教问题”,但即使是各方,也必须至少指出他们希望指出的一些优点和缺点。我会对听到这些争论很感兴趣。
如果这是一个常见问题解答,我先向您道歉:在此比较中,我找不到任何搜索结果。
最佳答案
Spec没有其他隐式转换,而是Suite所提供的默认转换,它会将===放在所有内容上。 WordSpec具有一些隐式转换,可以将单词放在字符串之后,因此隐式转换冲突的风险略高。
规范允许无限期嵌套。 WordSpec仅提供3级嵌套。
Spec给您提供了更多的自由来构造您的规范文本(尽管不如FreeSpec那样自由)。 WordSpec对如何组织文本非常有规定。
WordSpec比Spec更像是DSLish。有些人喜欢。
如果人们没有偏好,我会把他们指定为Spec作为默认选择,因为默认情况下它具有更少的隐式,更多的自由,更少的DSL和更多的嵌套,但是主要是这个选择是一个品味问题。
关于scala - 我应该使用Scalatest : Spec versus WordSpec versus FlatSpec,中的BDD?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8537425/