Story: User logging in As a user I want to login with my details So that I can get access to the site
考虑到这样一个广泛的覆盖面,如果我嘲弄DB等系统组件来进行测试是无用的,那么我可以说人们在集成测试中主要使用BDD吗?
>场景:使用系统的用户示例,其中包含所有相关组件,而不是嘲笑.可以自动化并用作验收测试,但业务,测试人员和开发人员之间的对话是BDD的最重要方面. Often created using the Given / When / Then template,有时在允许自然语言捕获的工具,如Cucumber或JBehave.
>集成测试:跨越两个组件的边界,通常用于检查这些组件的整合的完整性.例如,可以用于在Web界面的客户端和服务器层之间来回发送消息,或者使用Hibernate等检查数据库绑定.不一定涉及完整的堆栈.一种场景可以被认为是一种特殊的集成测试. BDD并不真正适用于大多数非场景集成测试,尽管您仍然可以使用Given / When / Then模板.
>单元测试:使用另一个类的消费类的一个例子,通常与协作者嘲笑.也可能是一个消费类将工作委托给其合作者的例子.无论如何,我们在BDD中谈论它(你可以在两个层面上做BDD).可also use the Given / When / Then syntax.
故事:通过功能切片,让我们得到更快的反馈.特征的行为可以用几种情况来说明,并且这些也可以用于帮助分割特征.经常被说明为…作为…我想要…所以…模板,或者为了… …作为…我想要…的模板Feature Injection.
>功能:功能表示用户使用我们提供的功能的方式.这是我们开始定义具体实现和UI的阶段.功能可以是网页,网页的一部分,Windows UI中的模块,应用程序的一部分等.
>能力:用户可以通过系统或系统可以实现的内容.即:用户可以预订交易,该系统的安全性足以抵挡黑客.在这个层次上的争吵情景可以帮助他们独立于用户界面,并保持他们的业务语言.
希望这可以帮助.