【问题标题】:SpecFlow / BDD with ASP.NET MVCSpecFlow / BDD 与 ASP.NET MVC
【发布时间】:2010-07-31 19:30:37
【问题描述】:

我是 BDD 的新手,我正在尝试使用 SpecFlow 制定一种高效、有组织且可维护的方法(用于 ASP.NET MVC 中)。我需要改进的主要方面是:

  • 步骤分组(到步骤文件中)

  • 重用测试对象(就像通过继承测试基类等在单元测试中很容易)

  • 文件夹结构

说到分组,让我们来看一个典型的 CRUD 场景。例如:

  • 我的项目中每个“区域”的文件夹,例如公共、站点管理

  • 每个文件夹中的功能文件夹和步骤文件夹

然后,在这些文件夹中,我有一个功能文件,涵盖了某个实体的整个 CRUD 体验,例如 NewsItem。我这样做是为了在我的步骤中重用对象和 NewsController。

但这意味着步骤文件变得非常庞大,涵盖了所有类型的有效、无效输入可能性,并且很难从头到尾遵循一种方案。但是如果我不这样做,我就无法在整个 CRUD 过程中重复使用可能适用于多个场景的步骤。

我知道这是非常主观的,我不怕被许多不同的想法和观点所淹没 - 这就是我想要的:P

除了您自己的意见和偏好之外,博客和书籍的链接也不错。

谢谢

尼克

【问题讨论】:

    标签: bdd


    【解决方案1】:

    很抱歉,很久没有人回答这个问题了。如果它仍然对您有用,这可能会有所帮助。

    我的步伐保持在一个非常高的水平:看到这个问题Imperative and declarative steps in Rspec

    我按关注领域对步骤进行分组。想象一下登录并执行一些操作,然后再次注销。或者也许是回家休息一天。我在一次会议中可能做的任何事情都会成为一个关注领域。例如,如果我是宠物店老板,我可能有以下步骤文件:处理库存宠物、处理配件和其他库存、销售物品、跟踪利润等。

    我也有一个屏幕/页面范例,就像 WebDriver。这意味着,如果一个步骤实际上在 UI 上做了几件事,那么就会有一个屏幕或页面来处理所有这些操作。

    我经常使用级联构造函数来允许我的 BDD 工具(在我的例子中是普通的旧 NUnit)为我创建这些步骤和场景。我一直在编写一个小型自动化工具,您可以在其示例中看到其中一些技术:

    http://code.google.com/p/wipflash/source/browse/Example.PetShop.Scenarios/PetRegistrationAndPurchase.cs

    我还没有过多地使用 SpecFlow,但我想这些可能对您有用。这与我在 JBehave 或 Fitnesse.NET 和 FitSharp 中使用的设计模式相同。

    祝你好运!如果您需要更多信息,有一个 BDD 组 http://groups.google.com/group/behaviordrivendevelopment 可能会为您提供帮助。

    【讨论】:

      猜你喜欢
      • 2011-07-11
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      相关资源
      最近更新 更多