我有一些用groovy编写的步骤定义的 cucumber 测试,当我运行它时出现以下错误:
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
Cucumber-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()
关于java - groovy 上的 Cucumber 在查找步骤定义时无法将 null 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60320996/