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
没有转换为 String
? null
可以转换为任何引用,不是吗?
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()
我有一些黄瓜测试,步骤定义写在 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
没有转换为 String
? null
可以转换为任何引用,不是吗?
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()