繁体   English   中英

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

[英]What Behavior Driven Development (BDD) Tooling/Frameworks are available for the Microsoft Stack? [closed]

我对行为驱动开发(BDD)感兴趣

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

何时证明BDD最适合在现实世界中使用? (辅助问题)

+1是人们对SpecFlow场景的推荐; 从未使用过它,但听到了很多关于它的好消息。 我一直在使用老式NUnit的有像小DSL 这个 MSTest将类似地工作。

你也可以做BDD在单位空间,而这正是MSpec是专门做。 我个人讨厌MSpec,但是这里的其他团队都很喜欢它。 他们喜欢编写代码示例。 我想说明为什么这种行为很有价值。 这是一个微妙的区别,如果您不担心在单位级别执行此操作,那将不会对您造成打击。

其他框架包括Concordion,Fitnesse.NET(请把FitSharp放在后面!)和TickSpec。

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

  • 不要对不断变化的事物进行自动测试。 它只是使您犯错。 等到UI稳定下来再执行。

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

  • 不要从登录开始。 首先描述您可能登录的应用程序的重要部分。首先进行此操作(假设您只有一个用户)。 您会更快地获得有关风险比特的反馈。

  • 寻求有关危险钻头的快速反馈,这些钻头通常是您从未做过的。 使用方案围绕它们进行对话。 写下您发现的有趣事物,但忘记显而易见的场景-它们很明显! 不用担心从一开始就使它们自动化。 进行对话比记录对话更重要,比使对话自动化更重要。

祝好运! 如果您想了解有关BDD的更多信息,请在此处整理相关链接的页面。

在谷歌搜索中,我发现了使用SpecFlow和ASP.NET MVC的行为驱动开发(BDD) 您可能会发现它有用,看看吧。 还要通过SpecFlow和WatiN进行行为驱动的开发

关于BDD优缺点的精彩演讲

真实世界中的第 9频道视频行为驱动开发

最后但并非最不重要的是InfoQ文章.NET中的行为驱动开发

LightBDD是一个开放源代码框架,允许编写易于阅读的BDD测试,但是随着项目的增长,它也易于维护和扩展。

它提供的主要功能是:

  • 易于阅读的场景
  • 易于维护测试,
  • 与著名的测试框架( NUnit / MbUnit / MsTest / xUnit集成
  • 场景步骤执行跟踪和执行时间度量,
  • 以HTML( 示例报告 ),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);
    }
}

有关框架的更多信息,请参见项目Wiki页面项目主页

MSpec也是一个很好的框架。

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

BDD可以帮助您以面向业务/功能的方式进行思考,而不仅仅是通过编码方式。 因此,您最关注业务价值。

它还有助于进行用户接受度测试,从而在您和客户之间建立信任。

有一个很棒的工具,叫做SpecFlow SpecFlow受到Cucumber的启发-众所周知的Ruby on Rails BDD框架。 并具有巨大的优势。

您一定要检查一下。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM