2

javaを使用してフィーチャーから「I Want」ステップを定義するにはどうすればよいですか?

私はキュウリプロジェクトを次のようにセットアップしています:

ログイン機能

Feature: User Login
    I want to test on "www.google.com"

Scenario: Successfully log in 
    Given I am logged out
    When I send a GET request to "/login"
    Then the response status should be "200"

次に、次のようにステップを定義します。

Steps.java

import cucumber.api.java.en.Given;
import cucumber.api.java.en.When;
import cucumber.api.java.en.Then;

public class Steps {
    @Given("^I am logged out$")
    public void i_am_logged_out() {
        //do stuff
    }

    @When("^I send a GET request to \"([^\"]*)\"$")
    public void i_send_a_GET_request_to(String arg1) {
        //do stuff
    }

    @Then("^the response status should be \"([^\"]*)\"$")
    public void the_response_status_should_be(String arg1) {
        //do stuff
    }
}

cucumber-jvm を使用して Java で「欲しい」ステップを定義するにはどうすればよいですか?

これが私の試みですが@When、有効な注釈ではありません。

@Want("to test on \"([^\"]*)\"$")
public void to_test_on(String arg1) {
    //do stuff
}
4

4 に答える 4

2

「テストしたい.......」は、有効なステップと見なされる正しい場所にありません。Cucumber はそれを機能の説明と見なし、何もしません。シナリオ全体で最初の共通ステップが必要な場合は、「背景」を追加する必要があります。

そのステップの前に代わりに「@Given」アノテーションを追加するだけです。

Background:
    @Given I want to test on "www.google.com"

それ以外の場合は、1 つのシナリオのみを実行して、他のステップと一緒に貼り付けます。

于 2016-09-02T04:39:20.447 に答える
1

「欲しい」はシナリオのステップではなく、シナリオやストーリーの物語の概要の一部です。

ナラティブ: 自分の (役割) で (機能) 実現したい (メリット)

この機能には、ステップで構成される多数のシナリオが含まれている必要があります。

BDDの「命令型と宣言型のBDD」と「ユビキタス言語」をご覧になることをお勧めします。一般に、BDD を作成するときは、ユビキタスな (技術的ではなく普遍的な) 宣言型言語を目指す必要があります。

Given I am logged out - Declarative style in ubiquitous language
When I send a GET request to "/login" - Imperative and geek domain language.
Then the response status should be "200" - Imperative and geek domain language.

ユビキタス言語で

Given I am logged out
When I log in
Then the response is logged in

さらに優れた、普遍的な三人称言語

Given an existing customer
When the customer authenticates 
Then the search page is shown

参照: http://grammarist.com/spelling/log-in-login/

于 2016-09-05T07:23:43.257 に答える
1

これを行うこともできます:

Feature: User login

Scenario: Successfully log in

Given I want to test on "www.google.com"
When I am logged out
Then I send a GET request to "/login"
And the response status should be "200"
于 2016-09-02T09:59:58.103 に答える