代码之家  ›  专栏  ›  技术社区  ›  Dan

BDD和功能测试

  •  7
  • Dan  · 技术社区  · 14 年前

    我开始买BDD了。基本上,据我所知,您编写的场景描述了特定故事的良好接受标准。您可以从简单的测试开始,从外到内,使用mock代替尚未实现的类。随着您的进步,您应该用真实的类替换mock。从 Introduction to BDD :

    首先,碎片是 使用mock设置 必须有效。这些构成了起点 实施行为的要点。作为 你实现了应用程序 givens和outcours被改为使用 你的实际课程 实施,以便 使端到端功能正常 测验。

    5 回复  |  直到 14 年前
        1
  •  3
  •   Péter Török    14 年前

    嗯,这取决于:-)据我所知,BDD生成的测试仍然是单元测试,因此应该使用mock来消除对外部因素(如DB)的依赖。

    然而,在成熟的集成/功能测试中,您显然应该针对整个生产系统进行测试,而不需要任何模拟。

        2
  •  2
  •   ratkok    14 年前

    集成测试可能包含存根/模拟,以伪造您正在集成的模块之外的代码/组件。

        3
  •  2
  •   Lunivore    14 年前

    是的,当一个场景运行时,理想情况下所有的类都是真实的。场景从用户的角度练习行为,因此系统应该像用户所看到的那样。

    在BDD的早期,我们通常从场景中的模拟开始。我不再为这个费心了,因为在你下一级的时候,不断地嘲笑是一件很费劲的事。相反,我有时会做一些事情,比如硬代码数据或行为,如果它能让我更快地从涉众那里获得反馈的话。

    当然,对于数据库之类的东西,可以使用内存中的DB或任何有助于更快获得反馈的东西。在某个时刻,您可能应该在一个尽可能接近生产的系统上运行您的场景。如果这个过程太慢,您可以在一夜之间完成,而不是作为常规构建周期的一部分。

    祝你好运!

        4
  •  0
  •   jyoungdev Thilo    14 年前

    我同意彼得和拉特科的观点。我认为你会永远保留mock,所以你总是有单元测试。

    另外,还应该进行集成测试(没有模拟,使用数据库等)。

    你甚至可以在中间找到一些有用的东西(模拟一段依赖代码(DOC),而不是另一段)。

        5
  •  0
  •   drekka    14 年前