Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 哪些行为驱动开发(BDD)工具/框架可用于Microsoft堆栈?_C#_Asp.net_.net_Frameworks_Bdd - Fatal编程技术网

C# 哪些行为驱动开发(BDD)工具/框架可用于Microsoft堆栈?

C# 哪些行为驱动开发(BDD)工具/框架可用于Microsoft堆栈?,c#,asp.net,.net,frameworks,bdd,C#,Asp.net,.net,Frameworks,Bdd,我对……感兴趣 对于.Net平台(最好是C#和ASP.Net),是否有好的框架和/或工具可用 什么时候BDD被证明最适合在真实场景中使用?(辅助问题)我在谷歌上找到的。你可能会发现它很有用,看看吧。也经过 一场精彩的演讲 第九频道的视频 最后但并非最不重要的是,InfoQ文章也是一个很好的框架 我在你提到的Microsoft堆栈(C#、ASP.Net和MVC)中使用了它,我喜欢他的语法 BDD帮助您以面向业务/功能的方式思考,而不仅仅是以代码的方式。 所以你最关注的是商业价值 它还有助于在用户验

我对……感兴趣

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

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

我在谷歌上找到的。你可能会发现它很有用,看看吧。也经过

一场精彩的演讲

第九频道的视频

最后但并非最不重要的是,InfoQ文章也是一个很好的框架

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

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


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

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


你一定要去看看

+1,供人们推荐场景的SpecFlow;从未使用过它,但听说过很多关于它的好东西。我一直在使用普通的老NUnit,有点像DSL。MSTest也会起到类似的作用

您还可以在单元空间中执行BDD,这就是MSpec的设计目的。我个人很讨厌MSpec,但这里的其他人都喜欢它。他们喜欢编写代码工作原理的示例。我喜欢展示为什么这种行为是有价值的。这是一个微妙的区别,如果你不担心在单位级别这样做,它不会击中你

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

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

  • 不要在不断变化的事情上编写自动化测试。它只会让你犯错误。等待UI稳定下来,然后再执行此操作

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

  • 不要以登录开始。首先描述您可能登录的应用程序的重要部分。首先这样做(假设您只有一个用户)。你会更快地得到关于风险部分的反馈

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


祝你好运!如果您想了解更多关于BDD的信息,我会整理一页相关链接。

一个有趣的BDD框架是。它是Microsoft堆栈的开源BDD框架,使用NUnit执行Concordion.NET测试: 由于协和规范是用简单的HTML编写的,因此它为动态文档系统提供了良好的基础。您可以使用所见即所得(WYSIWYG)编辑器(如BlueGriffon)在简单的HTML文档中描述软件的预期行为,并对其进行测试以验证您的测试系统。 根据,Concordion.NET专注于业务可读输入(同时也达到业务可读输出)。它甚至超越了BDD并支持ATDD:

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

是一个开源框架,允许编写易于阅读但也易于维护的BDD测试,并在项目规模扩大时进行扩展

它提供的主要功能有:

  • 易于阅读的场景
  • 易于维护测试
  • 与知名测试框架(//)的集成
  • 场景步骤执行跟踪和执行时间测量
  • 以HTML()、XML和纯文本格式生成测试执行摘要报告
它基于纯粹用代码编写的测试,这意味着对重构、代码分析、测试运行和VisualStudio/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);
    }
}

有关该框架的更多信息,请访问和。

谢谢Haris,但任何人都可以通过谷歌搜索并返回文章链接。我希望从开发人员那里听到一些专业经验,以及他们对这些框架的了解。如果你知道更多关于SpecFlow的信息,请告诉我。我无法推荐SpecFlow和WatiN,这是一个绝妙的组合!这更像我要找的+1好久不见了,您还在使用LightBDD吗?你有过愉快的经历吗?