什么行为驱动开发(BDD)工具/框架可用于Microsoft Stack?

one*_*mer 35 .net c# asp.net bdd frameworks

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

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

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

Lun*_*ore 33

+1为人们对场景的SpecFlow推荐; 从未使用它,但听到了很多关于它的好东西.我一直在使用普通的旧NUnit和像这样的小DSL .MSTest的工作方式类似.

也可以在单位空间中进行BDD,这是MSpec的设计目标.我个人非常讨厌MSpec,但是这里的其他团队都喜欢它.他们喜欢编写代码如何工作的例子.我想说明为什么这种行为是有价值的.这是一个微妙的区别,如果你不担心在单位级别这样做,它不会打你.

其他框架包括Concordion,Fitnesse.NET(请将FitSharp放在它背后!)和TickSpec.

在现实世界中,长期以来最有价值的BDD是对话,而不是自动化测试.这里有一些快速提示和技巧:

  • 不要对那些不断变化的东西进行自动化测试.它只是承诺你错了.等到UI稍微稳定下来然后再做.

  • 如果您不关心UI,但关注数据完整性,请通过控制器/演示者层编写方案(例如:用于管理员屏幕).

  • 不要以登录开始.首先描述您可能登录的应用程序的一个有价值的部分.首先执行此操作(假设您只有一个用户).您将获得有关风险位的更快反馈.

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

祝好运!如果您想了解有关BDD的更多信息,请在此处汇总一页相关链接.


Har*_*san 29

在谷歌搜索我发现行为驱动开发(BDD)与SpecFlow和ASP.NET MVC.您可能会发现它很有用,请看一下.还可以使用SpecFlow和WatiN进行行为驱动开发

关于BDD优缺点的精彩演讲

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

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


Woj*_*ski 8

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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


Be.*_*St. 5

此外MSpec是一个很好的框架.

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

BDD帮助您以业务/功能为导向思考,而不仅仅是以代码方式.因此,您最关注的是商业价值.

它还有助于用户验收测试,以在您和客户之间建立信任.