4

我刚刚发现了 Cucumber,它似乎更倾向于行为驱动测试?或不?

另外,我得到了这个示例代码:

public class HelloStepdefs {
    private Hello hello;
    private String hi;

    @Given("^I have a hello app with \"([^\"]*)\"$")
    public void I_have_a_hello_app_with(String greeting) {
        hello = new Hello(greeting);
    }

    @When("^I ask it to say hi$")
    public void I_ask_it_to_say_hi() {
        hi = hello.sayHi();
    }

    @Then("^it should answer with \"([^\"]*)\"$")
    public void it_should_answer_with(String expectedHi) {
        assertEquals(expectedHi, hi);
    }
}

根据我的理解,这个类会因为@Given注解而启动Hello类,那么如果被注解的方法@When被执行,它会调用带有@Then注解的方法吗?

无论如何,Cucumber 似乎很有趣,但是,它如何与现有的设计模式以及现有的框架(如 Spring 等)一起工作。

此外,在处理面向数据库的设计时如何使用它。

4

1 回答 1

2

cucumber确实是一个 BDD 工具,它起源于 ruby​​ 社区。 cucumber-jvm是 java 实现。

关于Given/When/Then,这些是特征文件中各个步骤的别名,而 ruby​​ 不区分它们。但它们很有价值,因为它们为编写、实施或阅读功能的各种利益相关者提供了上下文。

在与 spring 的集成方面,cuke4duke可能符合要求。

于 2013-02-22T04:47:39.307 回答