Docs

Documentation versions (currently viewingVaadin 24)
Documentation translations (currently viewingChinese)

此页面是从官方文档 http://vaadin.com/docs 机器翻译而来。可能包含错误、不准确或误述。Vaadin不对翻译的准确性、可靠性或及时性作任何保证或声明。

行为驱动开发

一种从使用普通语言编写测试开始的软件开发方法。

行为驱动开发(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