行为驱动开发
行为驱动开发(Behavior-Driven Development,BDD)是一种基于测试驱动开发的软件开发方法,其中诸多开发工作始于为预期开发的软件撰写测试。行为驱动开发使用一种 通用语言(ubiquitous language),在商业目标(如预期行为)和测试之间进行交流,以确保软件实现这些目标。
BDD流程从以 用户故事(user stories) 表达的业务需求收集开始,这通常是敏捷方法中的典型做法。一名具有特定 角色(role) 的用户请求一个 功能(feature) 以获取特定的 利益(benefit)。
用户故事还可表示为描述期望行为的不同情形的 场景(scenarios)。这样的场景可通过以下三个阶段进行正式定义:
-
假如(Given) 我打开了计算器,
-
当(When) 我按下计算器按钮,
-
那么(Then) 屏幕应该显示结果。
JBehave 是一种适用于Java的BDD框架,可以实现上述形式化描述。TestBench演示项目包含一个JBehave示例,其中上述场景的具体实现可参见以下链接的测试类:测试类示例:
Source code
Java
public class CalculatorSteps extends ChromeSteps {
private KeypadElement calculator;
@BeforeScenario
public void setElements() {
calculator = $(KeypadElement.class).first();
}
@When("I push $buttons")
public void enter(String buttons) {
calculator.calculate(buttons);
}
@Then("the display should show $result")
public void displayShows(String result) {
assertEquals(result, calculator.getDisplayValue());
}
}Java
Java
Java
此演示使用了为应用程序用户界面定义的页面对象,详情见 使用页面对象创建可维护的测试。如上的场景通常纳入到一个或多个用户故事中,这些故事需被配置在扩展 JupiterStories 的类中。
在该示例中,使用TestBench来管理 WebDriver 和浏览器配置。这一点是在SimpleBDDCalculationIT.java类中实现的。此类定义了如何通过类加载器动态查找故事类,以及如何报告故事的测试结果。
欲了解更多关于此的资料,请参考JBehave官方网站 http://jbehave.org/。
5115165C-951D-436A-8F3F-C7BB2F83A054