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