Передача переменной между огуречным @Given @When @Then - PullRequest
0 голосов
/ 11 июля 2019

У меня есть декларация о моих функциях ниже. Одна из моих функций возвращает подпись приложения (objEvaluationPage.getApplicationSignature) В первом @Given я передал значение, возвращаемое этой функцией в переменную подписи, я успешно использовал это значение в objEvaluationPage.setSignature (signature) в первом @ Given.

Я также хочу использовать переменную подписи во втором @Given: objEvaluationPage.setSignature (signature); но значение подписи не передается, в консоли (первая строка из журнала выполнения) у меня есть signature2: null, возвращенное из System.out.println ("signature2:" + signature);

Почему я не могу использовать значение переменной подписи в секунду @Given?

package opi.features.evaluation;

import com.codeborne.selenide.Selenide;
import com.github.javafaker.Faker;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.When;
import cucumber.api.java.en.Then;
import opi.pages.evaluation.EvaluationPage;
import opi.pages.evaluation.applicationView.PermissionsPage;
import opi.pages.programs.LoginPage;
import opi.utils.PropertiesReader;

import java.io.IOException;
public class ExpertFeatures {
    public String signature;
    String programName = "P";
    EvaluationPage objEvaluationPage = new EvaluationPage();
    LoginPage objLoginPage = new LoginPage();
    PermissionsPage objPermissionsPage = new PermissionsPage();
    Faker faker = new Faker();


    @Given("^UserEmployee finds application with status formal evaluation accepted$")
    public void useremployeeFindsApplicationWithStatusFormalEvaluationAccepted() throws IOException, InterruptedException {
        Selenide.open( new PropertiesReader().getEvaluationUrl());
        objLoginPage.login("mateuszkrasny@gmail.com","Wniosek1!");
        objEvaluationPage.selectAllPrograms();
        objEvaluationPage.deselectAllPrograms();
        objEvaluationPage.setProgram(programName);
        objEvaluationPage.selectAllStatuses();
        objEvaluationPage.deselectAllStatuses();
        objEvaluationPage.checkFormalPositive();
        signature = objEvaluationPage.getApplicationSignature();
        objEvaluationPage.checkFirstAvaiableApplication();
        System.out.println("signature: "+signature);
        objEvaluationPage.setSignature(signature);
    }

    @When("^UserEmployee adds expert to application$")
    public void userEmpAddsExpertToApplication() throws IOException, InterruptedException {
      //  objEvaluationPage.clickAssignReviewer();
       // objEvaluationPage.setExpert("Krasny Mateusz");
      //  Thread.sleep(2000);
    }

    @Then("^UserExpert is added to application$")
    public void userExpIsAddedToApplication() throws IOException, InterruptedException {

    }



    @Given("^UserEmployee is on permissions page of application with added expert$")
    public void userEmpIsOnPermissionsPageOfApplicationWithAddedExpert() throws IOException, InterruptedException {
        objEvaluationPage.selectAllStatuses();
   
        System.out.println("signature2:"+signature);
        objEvaluationPage.setSignature(signature);


        objEvaluationPage.clickOnFirstAvaiableApplication();

        objPermissionsPage.clickPermissionTab();
 



    }

    @When("^UserEmployee removes expert from application$")
    public void useremployeeRemovesExpertFromApplication() throws InterruptedException {
       objPermissionsPage.clickDeleteBtn();
       objPermissionsPage.addDeleteNote(faker.twinPeaks().quote());
  
    }

    @Then("^UserExpert was removed from application$")
    public void userexpertWasRemovedFromApplication() {

    }
}

1 Ответ

0 голосов
/ 11 июля 2019

Хорошо, я использую в секунду @ Дано

objEvaluationPage.setSignature(ExpertFeatures.signature);

вместо

objEvaluationPage.setSignature(signature);

, и для меня это неправильно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...