You need to enable JavaScript to run this app. 升级Cucumber至6.9.1后Scenario Outline Examples无法传入空字符串的问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

升级Cucumber至6.9.1后Scenario Outline Examples无法传入空字符串的问题咨询

问题触发原因
  • Cucumber 6.9.1版本调整了Scenario Outline中Examples表格的单元格解析规则:旧版本会将无实际内容的空白单元格解析为长度为0的空字符串"",升级到6.9.1后,版本默认将仅含空白、无实际文本的单元格解析为null值而非空字符串,如果对应步骤方法的String入参未做null兼容处理,就会抛出参数类型不匹配的运行异常。
  • 提供的复现代码本身存在格式疏漏:步骤定义行内的<second>占位符漏写了左尖括号,写成"second>",会导致占位符无法被正确匹配,进一步放大解析异常的表现。
对应解决方法
  • 显式标记空单元格:不要在Examples表格中留完全空白的单元格,将需要传入空字符串的位置替换为字面量"",让解析器直接识别为目标空字符串值,参考修正后的Gherkin脚本:
    Scenario Outline: Testing datatable with empty string
      When passing "<first>" and "<second>" as String parameter
      Then exception should be thrown
      Examples:
        | first  | second |
        | simple | ""     |
    
  • 步骤层做兼容转换:在对应接收String参数的步骤方法中增加判空逻辑,将解析得到的null值手动转换为空字符串"",匹配原有业务逻辑的预期。
  • 恢复旧版本解析规则:在项目的cucumber.properties配置文件中添加配置项cucumber.empty-cell-as-string=true,即可将空白单元格的解析行为切回旧版本的空字符串模式,无需修改原有业务测试脚本。

内容的提问来源于stack exchange,提问作者Janani Sampath Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.05 11:45:01