不能有一个没有参数的步骤定义吗?



我有以下情况:

Feature: Spheres
Scenario: A ray intersects a sphere at two points
Given r ← ray(point(0, 0, -5), vector(0, 0, 1))
And s ← sphere()
When xs ← intersect(s, r)
Then xs.count = 2
And xs[0] = 4.0
And xs[1] = 6.0

为了保持简单,我想我会从字面上写步骤定义来开始:

import io.cucumber.java8.En
class SphereStepDefinitions: En {
private val epsilon: Double = 0.00001
lateinit var s: Sphere
lateinit var xs : List<Double>
init {
Given("s ← sphere\()") {
s = Sphere()
}
}
}

结果,

The step "s ← sphere()" is undefined. You can implement it using the snippet(s) below:
Given("s ← sphere\()", () -> {
// Write code here that turns the phrase above into concrete actions
throw new io.cucumber.java8.PendingException();
});

这与我已经指定的步骤字符串完全相同。 :(

我已经在项目中有很多工作步骤,但我认为这是我在没有任何参数的情况下尝试的第一个步骤......这根本就行不通吗?

我在Java 11上使用Cucumber-jvm 5.7.0(也尝试过5.6.0和6.0.0-RC2(和Kotlin 1.3.72

您现在正在使用黄瓜表达式。看起来黄瓜没有生成正确的黄瓜表达式片段。

您可以使用常规表达式(通过使用^$(:

^s ← sphere\(\)$

或使用:

s ← sphere()解决该错误。我会推荐前者而不是后者。

相关内容

最新更新