【问题标题】:Cucumber - DocStringType - Jackson Data Bind UnrecognizedPropertyException - Even If Property ExistedCucumber - DocString 类型 - Jackson Databind UnrecognizedPropertyException - 即使属性存在
【发布时间】:2022-06-12 01:28:47
【问题描述】:

下面是我的功能文件

Scenario Outline: CucumberTest
    Given Generate Data Set
    """json
      {
         "tcIdentifier":"TC1"
      }
      """
    Examples:
      |TESTCASEIDENTIFIER|
      |TC1                |

步骤定义如下所示

 @Given("Generate Data Set")
        public void generateDataSet(DataSetMetaData dataSetMetaData) {
    
            System.out.println(dataSetMetaData);
        }



@DocStringType
    public DataSetMetaData createTestDataForSorting(String details) throws JsonProcessingException {
        return new ObjectMapper().readValue(details, DataSetMetaData.class);
    }

Details of the DataSetMetaData

@Getter
@Setter
@ToString
@AllArgsConstructor
@Builder
@NoArgsConstructor
public class DataSetMetaData {
    private String tcIdentifier;
}

预期:从要转换为 DataSetMetaData POJO 的 Docstring 的数据绑定

实际:我们遇到了异常 com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段“tcIdentifier”未标记为可忽略(0 个已知属性:])

来自以前的一些类似的响应-异常-社区建议将字段注释为@JsonProperty-我无法理解的内容-如果变量名称与 JSON 数据键匹配-理想情况下绑定应该有效-对于一些奇怪的原因 - 即使属性存在 - UnrecognizedPropertyException: Unrecognized field "tcIdentifier"

以下是与 Cucumber 和 Jackson 依赖项相关的 maven 坐标

实现组:'io.cucumber',名称:'cucumber-java',版本:'7.3.4 实现组:'net.logstash.logback',名称:'logstash-logback-encoder',版本:'7.2'

如果需要任何进一步的信息,请告诉我

【问题讨论】:

  • 你能在没有 Cucumber 的情况下尝试重现这个吗?它似乎没有增加任何问题?
  • 你不应该在班级本身上有杰克逊注释吗?还是杰克逊/龙目岛的组合?
  • @M.P.Korstanje - 你在现场 - 我缺乏注意力 - 让我连接到 Cucumber - 它与 Cucumber 无关 - 即使通过杰克逊图书馆进行正常反序列化 - 从 String 到 POJO 是失败
  • @GaëlJ - 我在课堂上没有任何 Jackson 注释 - 但我有 @Builder/@Getter/@NoArgsConstructor/@AllArgsConstructor 的 Lombok 注释

标签: cucumber cucumber-jvm jackson-databind


【解决方案1】:

@M.P. Korstanje 和@GaëlJ - 非常感谢您提供见解并为正确方向的分析提供指导

在 annotationProcessor 的范围内添加 Lombok 依赖项起到了神奇的作用 - 希望对您有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 2021-11-10
    • 2017-11-26
    • 1970-01-01
    相关资源
    最近更新 更多