我正在尝试开始使用 BDD,并找到了有关 MSpec 和 SpecFlow 的查看博客文章。我目前不太确定我什么时候会使用哪个框架以及这两个框架的优点/缺点是什么。
查看文档,似乎 MSpec 使用上下文规范样式,而 SpecFlow 使用 Given/When/Then 样式。我也不介意,但我想知道当项目/测试套件增长时是否有任何陷阱需要注意。
基本上,在日常工作中使用它的人的一些现实世界的建议/反馈会很棒。
所以我两个都用过。我喜欢 mspec 工作流程,因为它更容易让我与用户交谈并说出来。
“登录时” “我应该返回我请求的页面”
当我为那些购买更多积极协作(阅读敏捷)的组织工作时,我使用了 Given When Then 模式。该组织习惯于用户故事,因此他们习惯于更严格的规范风格。此外,我们使用了不止一种工具来输入规格。因此“纯文本”功能文件可以在工具之间重复使用。
在我自己的项目中,我将 SpecFlow 用于“外部”,将“mspec”用于内部测试。如果我要给某人建议,如果非技术人员正在编写外部规范,则使用 specflow;如果开发人员正在编写规范,则使用 mspec。
缺点:Mspec 是类爆炸 SpecFlow 是一种较慢的工作流 优点:Mspec 是一种更自然的语言 Specflow 对于步骤的可重用性更好。
最重要的是它们可以很好地协同工作。
mspec 的一个缺点是您不能并行运行,而使用 specflow runner 则可以。这是一个很大的性能问题。