groovy 上的 Cucumber 在查找步骤定义时无法将 null 转换为字符串

Cucumber on groovy can't cast null to string when looks for step definition

我有一些黄瓜测试,步骤定义写在 groovy 上,当我 运行 它时出现以下错误:

groovy.lang.MissingMethodException: No signature of method: test.steps.StepDefs$_run_closure14.doCall() is applicable for argument types: (null, null, String, Integer, String) values: [null, null, qwer, 21, 1]
Possible solutions: doCall(java.lang.String, java.lang.String, java.lang.String, short, java.lang.String), findAll(), findAll()

场景:

Scenario: justscenario
    Then ABC string qwer, short 21 version 1

步骤定义:

Then(~'^ABC(?: ([^\s]*))?(?: for "(\S+)")? string ([^\s]*), short (\d+) version ([^\s]*)$')
    { String key, String user, String stringId, short shortId, String version -> ...

在这种情况下,我不需要前两个值,所以我将其省略。
为什么前两个 nulls 没有转换为 Stringnull 可以转换为任何引用,不是吗?

Cucumber 版本为 4.8.0
黄瓜-groovy 是 4.7.1
Junit 是 4.12

错误是由于在要调用的函数中使用了short

... test.steps.StepDefs$_run_closure14.doCall() is applicable for argument types: (null, null, String, Integer, String) values: [null, null, qwer, 21, 1]

Possible solutions: doCall(java.lang.String, java.lang.String, java.lang.String, short, java.lang.String), findAll(), findAll()