Cucumber - не удалось найти DataTableType.entry в моем классе TypeRegistryConfigurer - PullRequest
1 голос
/ 30 января 2020

В настоящее время я использую Cucumber и пытаюсь использовать TypeRegistryConfigurer для автоматического преобразования dataTable в мой класс. Я использую следующий код в моей TypeRegistryConfiguration:

    import static java.util.Locale.ENGLISH;

    import com.fasterxml.jackson.databind.ObjectMapper;
    import my.company.decision.calculator.service.domain.CalculationRequest;
    import my.company.decision.calculator.service.domain.CalculationResponse;
    import io.cucumber.core.api.TypeRegistry;
    import io.cucumber.core.api.TypeRegistryConfigurer;
    import io.cucumber.datatable.DataTableType;
    import java.util.Locale;

    import java.util.Locale;

    public class CalculationApiTypeRegistryConfiguration implements TypeRegistryConfigurer {
        @Override
        public Locale locale() {
            return Locale.ENGLISH;
        }

        @Override
        public void configureTypeRegistry(TypeRegistry typeRegistry) {
            typeRegistry.defineDataTableType(DataTableType.entry(Example.class));
        }
    }

Однако я получаю сообщение об ошибке:

Не удается найти метод DataTableType.entry.

Мои зависимости от gradle следующие:

compile group: 'io.cucumber', name: 'cucumber-java', version: '5.0.0'
testCompile group: 'io.cucumber', name: 'cucumber-junit', version: '5.0.0'

Есть идеи по этому поводу?

Ответы [ 2 ]

1 голос
/ 30 января 2020

Cucumber v5 имеет конфигурацию на основе аннотаций, которая позволит вам сделать это:

package io.cucumber.examples.java;

import io.cucumber.java.DataTableType;
import java.util.Map;

public class ShoppingSteps {

    @DataTableType
    public Grocery defineGrocery(Map<String, String> entry) {
        return new Grocery(entry.get("name"), Integer.parse(entry.get("price")));
    }

Вы также можете передать entry мапперу, например, Джексону, чтобы сделать преобразование для вас.

0 голосов
/ 30 января 2020

Я использовал следующие версии Cucumber, и это сработало:

compile group: 'io.cucumber', name: 'cucumber-java', version: '4.8.1'
testCompile group: 'io.cucumber', name: 'cucumber-junit', version: '4.8.1'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...