cucumber.runtime.CucumberException: не тип карты или списка - PullRequest
0 голосов
/ 13 мая 2019

Если я использую данные в Таблице данных, которые не являются типом Списка или Карты, то это дает мне ошибку

cucumber.runtime.CucumberException: Not a Map or List type

Вот как я тестирую это.Я тестирую его снизу вверх, т.е. пишем функцию> затем пишем шаг def> пишем файл функций (только для целей тестирования).

Java-функция:

public String getScenarioName(Scenario scenario) {
        System.out.println("scenario.getName().toString());
    }

step def:

@And("^Get current scenario name$")
    public void get_current_scenario_name(Scenario scenario) {
        System.out.println(getScenarioName(scenario));
    }

Файл функции:

  Scenario: Title of your scenario
    Given I have a scenario
    Then Get current scenario name
      |scenario|

Поскольку я использую Scenario интерфейс в качестве параметра, который у меня естьиспользовать его в функциях, в шагах и в файле объектов.

Примечание: Пожалуйста, не судите по странному сценарию, я только проверяю его.

Я прошел через ссылки ниже, но это не помогает мне.Это продолжает выдавать мне одну и ту же ошибку.

https://github.com/cucumber/cucumber-jvm/issues/741

http://grasshopper.tech/340/ >> Это я не мог реализовать, я не понял этого.

1 Ответ

1 голос
/ 13 мая 2019

Ты выглядишь не в том направлении. Чтобы распечатать имя сценария на данном шаге, вы должны захватить его в ловушке перед тем, как распечатать на шаге:

import cucumber.api.Scenario;
import cucumber.api.java.Before;
import cucumber.api.java.en.And;

public class ExampleSteps {

    private Scenario scenario;

    @Before
    public void capture_scenario(Scenario scenario){
        this.scenario = scenario;
    }

    @And("^get current scenario name$")
    public void get_current_scenario_name() {
        System.out.println(this.scenario.getName());
    }
}

Тогда этот сценарий напечатает My Scenario.

Scenario: My Scenario
  And I get the current scenario name
...