哪些行为驱动开发 (BDD) 工具/框架可用于 Microsoft Stack? [关闭]

Posted

技术标签:

【中文标题】哪些行为驱动开发 (BDD) 工具/框架可用于 Microsoft Stack? [关闭]【英文标题】:What Behavior Driven Development (BDD) Tooling/Frameworks are available for the Microsoft Stack? [closed] 【发布时间】:2012-02-13 21:03:31 【问题描述】:

我对@9​​87654321@感兴趣

.Net 平台(最好是 C# 和 ASP.Net)是否有任何好的框架和/或工具可用?

什么时候证明 BDD 最适合在实际场景中使用? (辅助问题)

【问题讨论】:

【参考方案1】:

在谷歌上我找到了Behavior Driven Development (BDD) with SpecFlow and ASP.NET MVC。你可能会觉得它很有用,看看吧。也可以通过Behavior-Driven Development with SpecFlow and WatiN

Pros and Cons of BDD 上的精彩演示

第9频道视频Behavior-Driven Development in the Real World

还有一篇 InfoQ 文章 Behavior Driven Development In .NET

【讨论】:

谢谢你,Haris,但任何人都可以谷歌并返回文章链接。我希望听到开发人员的一些专业经验以及他们对这些框架的了解。如果您对 SpecFlow 有更多了解,请告诉我。 我不能推荐 SpecFlow 和 WatiN,这是一个绝妙的组合!【参考方案2】:

另外MSpec 也是一个很好的框架。

我在您提到的 Microsoft 堆栈(C#、ASP.Net 和 MVC)中使用它,我喜欢他的语法。

BDD 可帮助您以面向业务/功能的方式进行思考,而不仅仅是以代码方式。 所以你最关注的是商业价值。

它还有助于在用户接受度测试中建立您和客户之间的信任。

【讨论】:

【参考方案3】:

有一个很棒的工具,叫做SpecFlow。 SpecFlow 的灵感来自 Cucumber — 著名的 Ruby on Rails 的 BDD 框架。并且具有巨大的优势。

您绝对应该检查一下。

【讨论】:

【参考方案4】:

+1 为人们对 SpecFlow 场景的推荐;从未使用过它,但听说过很多关于它的好东西。我一直在使用带有一点 DSL 的普通旧 NUnit,例如 this。 MSTest 的工作方式类似。

也可以在单位空间中做BDD,这就是MSpec的设计目的。我个人讨厌 MSpec,但这里的其他团队成员都喜欢它。他们喜欢编写代码如何工作的示例。我喜欢说明为什么这种行为是有价值的。这是一个微妙的区别,如果您不担心在单位级别上执行此操作,它不会对您产生影响。

其他值得关注的框架包括 Concordion、Fitnesse.NET(请把 FitSharp 放在后面!)和 TickSpec。

在现实世界中,BDD 最有价值的部分是对话,而不是自动化测试。以下是一些让它发挥作用的快速提示和技巧:

不要对不断变化的事物编写自动化测试。它只会让你犯错的事情。等到 UI 稳定下来再做。

如果您不太关心 UI,但关心数据完整性,请在控制器/演示者层上编写场景(例如:用于管理屏幕)。

不要从登录开始。首先描述您可能登录的应用程序的一个有价值的部分。首先这样做(假设您只有一个用户)。您将更快地获得有关风险部分的反馈。

寻求有关风险位的快速反馈,这通常是您以前从未做过的位。使用场景围绕它们进行对话。写下你发现的任何有趣的东西,但忘记那些显而易见的场景——它们是显而易见的!不要担心一开始就将它们自动化。进行对话比写下对话更重要,比自动化对话更重要。

祝你好运!如果你想进一步了解BDD,我整理了一页相关链接here。

【讨论】:

这有点像我想要的。 +1【参考方案5】:

一个有趣的 BDD 框架是Concordion.NET。它是 Microsoft 堆栈的开源 BDD 框架,使用 NUnit 执行 Concordion.NET 测试:https://github.com/concordion/concordion-net 由于 Concordion 规范是用简单的 html 编写的,因此它为活文档系统提供了良好的基础。您可以使用 BlueGriffon 之类的所见即所得 (WYSIWYG) 编辑器在简单的 HTML 文档中描述软件的预期行为,并使用它们来验证您的测试系统。 根据excellent classification of BDD tools,Concordion.NET 专注于业务可读输入(并达到业务可读输出)。它甚至超越了 BDD 并支持 ATDD:http://assertselenium.com/2012/11/05/difference-between-tdd-bdd-atdd/

【讨论】:

【参考方案6】:

Spec4Net (https://bitbucket.org/fthomsen/spec4net/) 也是一个不错的框架。我们在工作中广泛使用它。学习曲线几乎不存在,自然流程似乎很直观。

【讨论】:

【参考方案7】:

LightBDD 是一个开源框架,允许编写易于阅读的 BDD 测试,并且在项目变大时也易于维护和扩展。

它提供的主要功能是:

易于阅读的场景, 易于维护测试, 与知名测试框架集成 (NUnit / MbUnit / MsTest / xUnit), 场景步骤执行跟踪和执行时间测量, 以 HTML (an example report)、XML 和纯文本格式生成测试执行摘要报告。

它基于纯代码编写的测试,这意味着对重构、代码分析、测试运行以及 Visual Studio / Intellisense / Resharper 提供的所有其他功能的原生支持。

在此框架中编写的示例测试如下所示:

[TestFixture]
[FeatureDescription(
@"In order to access personal data
As an user
I want to login into system")] //feature description
[Label("Story-1")]
public partial class Login_feature //feature name

    [Test]
    [Label("Ticket-1")]
    public void Successful_login() //scenario name
    
        Runner.RunScenario(

            Given_user_is_about_to_login, //steps
            Given_user_entered_valid_login,
            Given_user_entered_valid_password,
            When_user_clicked_login_button,
            Then_login_is_successful,
            Then_welcome_message_is_returned_containing_user_name);
    

有关框架的更多信息,请访问project wiki page 和project main page。

【讨论】:

时间已经过去了,你还在用LightBDD吗?你有过愉快的经历吗?

以上是关于哪些行为驱动开发 (BDD) 工具/框架可用于 Microsoft Stack? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

一个简单的用于JavaScript的BDD(行为驱动开发)库。

初识gauge自动化测试框架

行为驱动开发(BDD) - 深入了解

前端测试框架 Jest

行为驱动开发(BDD)

行为驱动开发(BDD)实践示例