写了一个 小文章 关于 BDD,有人向我提问,询问是否有大规模使用 BDD(特别是 NBehave)的案例。

所以我向社区提出问题:您有成功使用 BDD 的项目吗?如果是这样,您获得了哪些好处,以及哪些方面可以做得更好?你会再做一次BDD吗?你会推荐给其他人吗?

有帮助吗?

解决方案

我们在不同场景(开源和 ND 项目)的代码级别使用了一些 BDD。

  1. 告诉MVC场景中的视图,接受用户什么样的输入(.NET 中的 DDD 和规则驱动的 UI 验证)

    result = view.GetData(
      CustomerIs.Valid, 
      CustomerIs.From(AddressIs.Valid, AddressIs.In(Country.Russia)));
    
  2. 告诉服务层关于异常处理行为(行动政策 被注入到装饰器中):

    var policy = ActionPolicy
      .Handle<WebException>()
      .Retry(3);
    

使用这些方法极大地减少了代码重复,使代码库更加稳定和灵活。此外,由于复杂细节的逻辑封装,它使一切变得更加简单。

其他提示

我是在一个小的团队所使用BDD在网站上。

我们用它基本上是TDD,但测试被简单地写为使用DSL行为的方式。我们没有进入行为的大量的前期设计,但我们也创造了大量的人,并用它们完全按照自己的测试。

正如您所料,它的工作就像TDD,总体上是好的。与客户互动和一个相当不错的文档制作时措辞测试的行为是好的,但我种希望的行为写在英语和测试程序,而不是试图想出用未一些困难的中间语言完全适合任一目的。

它仍然是BDD,只是没有试图扭曲语言到由random_looking.set of_Punctuation rather_than simple.spaces划定了一个语言这个可爱的把戏,但这只是我的脾气暴躁的老程序员的态度,所有的人是100%满意的。

该网站提供并全面运作,所以我把它称为一个成功的:看一看

我最近使用GWT的BDD样式在一个高级别要求的文档。我没有从客户那里得到关于GWT任何反馈买我的老板说,他很喜欢它,因为它是非常明确的,易于理解。注意他有没有BDD的知识,我知道的。我没有把用户的故事,因为这可能会一直为人们提供了传统的瀑布背景有点太通风的童话。也许我会尝试把用户的故事下一次。

通过这不是一个眼球UI项目的方式。这是一个集成项目同步从web服务数据到数据库中。因此它表明,GWT工作即使对于非“眼球”的UI。

我已经使用了几个项目(使用MSpec)取得了巨大成功上下文规范的风格。我还是想知道,场景风格的真正好处。我用的是上下文规范风格越多,我越喜欢它,更严格的我的应用程序的感觉。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top