使用空手道API forEach方法时出现“步骤定义方法不匹配”错误

时间:2019-09-01 15:28:13

标签: karate

我试图在我的一个功能文件中使用forEach方法,但我不断收到此错误: “找不到符合以下条件的步进定义方法:forEach ...”

我什至尝试使用空手道documentation中的示例,但仍然无法正常工作。

这是我的跑步者:

import com.intuit.karate.junit4.Karate;
import com.intuit.karate.KarateOptions;
import org.junit.runner.RunWith;

@RunWith(Karate.class)
@KarateOptions(features = "classpath:com/kenshoo/apitests/testForEach.feature")
public class ApiTestsRunner {

}

这是我的功能文件:

Feature: Test forEach

  Scenario: karate forEach operation on lists
    * def res = []
    * def fun = function(x){ karate.appendTo(res, x * x) }
    * def list = [1, 2, 3]
    * forEach(list, fun)
    * match res == [1, 4, 9]

这是我得到的错误:

testForEach.feature:7 - no step-definition method match found for: forEach(list, fun)
com.intuit.karate.exception.KarateException: testForEach.feature:7 - no step-definition method match found for: forEach(list, fun)
    at ✽.* forEach(list, fun) (testForEach.feature:7)

空手道API版本-0.9.3

2 个答案:

答案 0 :(得分:0)

仔细阅读文档。它应该是karate.forEach(list, fun) 支持此语法的版本。如果仍然遇到问题,请执行以下过程:https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue

答案 1 :(得分:0)

我转载了0.9.3版的错误。更新到0.9.4版将解决此问题。

在0.9.4版中,“ eval”关键字变为可选。这就是为什么您会收到“无步进定义...”错误的原因。

在此处查看发行说明: https://github.com/intuit/karate/releases


作者花更多的时间给人们中指并说“ RTFM”而不是实际上没有帮助,这是可耻的。我想有些人会忘记学习新语言的挑战,特别是对于新手开发人员。 @ EB123 ...您只是“错过”了托马斯先生提出的答案是出于傲慢而不是谦虚的事实。