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

标签 java groovy junit cucumber

我有一些用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 没有转换为 Stringnull 可以转换为任何引用,不是吗?

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/

相关文章:

java - 对 Hashmap<String, Object> 内的对象值进行排序

java - 如何在 JUnit 中测试 void 方法

java - DataProvider 不适用于外部整数

java - 使用 Spring Projection Interface 的 native 查询来选择字段

java - 如何在 jtextfield 中将 3 个结果集值连接在一起?

hibernate - 无论如何,是否要检查域类中的属性是否为主键?

groovy 脚本类路径

java - 通过 Maven 使用 Junit Categories 运行 Cucumber 测试

Java:从命令行编译和运行多个包

java - 当从可运行的 jar 执行时,缺少resolveStrategy会破坏DSL