我试图在我的一个功能文件中使用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
答案 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 ...您只是“错过”了托马斯先生提出的答案是出于傲慢而不是谦虚的事实。