cucumber.runtime.CucumberException: не тип карты или списка

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

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

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

Java-функция:

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

шаг 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 ответ


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

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

Есть идеи?

10000