0

きゅうり初心者です。キュウリによる UI 自動化のユースケースを以下に示します。

以下の例を検討してください。

TestNgでは、

@Test {"formname"}
public void createAndSearchForm(String formName)
{
    //In below  step, it create form by name (formName-timestamp) and return   the formname. e.g. it create form and return "formname-06042016184426"
    // In this method we create form name by appending time stamp to formname passed to method. Since application didn't accept same name we need to append timestamp
    //   to formname.
    String newFormName=createForm(formName);

    // In below method we pass above newFormName and verify whether form is created or not by searching form name.
    asserTrue(searchCreatedForm(newFormName));

}

現在、キュウリに移行しており、キュウリで上記の例を達成する必要があります。

機能: フォーム。


シナリオ: アプリケーションへのログイン
"formname" という名前のフォームを作成し、"formname" を
検索</p>

私たちが直面している問題 -> step1 で返される formname を step2 に渡す方法がわかりません。シナリオ内で、このフォーム名をさまざまなクラスに実装されている別のステップ定義に渡す必要があります。

ネットで検索しようとしましたが、私たちのニーズに固有のものは見つかりませんでした。

誰かが私たちにいくつかの指針/提案を与えることができれば、それは大きな助けになるでしょう.

4

1 に答える 1

1

編集 複数のステップ ファイルで変数を共有する必要がある場合は、変数を定義するスーパークラスを作成します。各ステップ ファイルはそのスーパークラスを拡張して、その変数 (または変数) にすべてアクセスできるようにします。

コメントに記載されているように、状態がリークする可能性があるため、クラス変数を静的にすることに注意してください。シナリオごとに値がリセットされるように、クラス コンストラクターで静的変数の値を値 (null など) に設定します。

--編集終了--

public class YourStepDefinitions {

    private String interStepParameter;

    @Given("^Some first step$")
    public void first_step() {

        interStepParameter = "foo";

    }

    @Then ("^A second step$")
    public void second_step() throws Throwable {
        if (interStepParameter.equals("foo") {
           // Do something
        }
    }
}
于 2016-04-06T23:22:05.430 に答える