datatable - Cucumber - 在我的 TypeRegistryConfigurer 类中找不到 DataTableType.entry

标签 datatable cucumber

我目前正在使用 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));
        }
    }

但是我收到错误消息:

Cannot find method 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'

对此有什么想法吗?

最佳答案

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")));
    }

您还可以将条目传递给 jackson 等映射器来为您进行转换。

关于datatable - Cucumber - 在我的 TypeRegistryConfigurer 类中找不到 DataTableType.entry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59980159/

相关文章:

search - 如何在提交“搜索”按钮后刷新 Wicket 数据表

css - 覆盖数据表 css

c# - .Net C# 数据表和数据集,如何关联表

java - 在测试中使用Java + Spring + Cucumber 框架相对于核心Java + Cucumber 框架有哪些优势?

java - 我可以创建一个 spring bean 作为我的 cucumber 步骤定义的一部分吗?

java - 将maven依赖迁移到gradle

javascript - 单击复选框时禁用行隐藏/显示

java - jsf - 数据表中用于删除行的命令链接

java - 如何在 cucumber-jvm 中忽略 junit 步骤导致测试场景失败

java - 如何跳过步骤定义或将场景标记为已通过?