我最近从JBehave 3.10升级到4.0.4。这次升级破坏了我的基于场景的元数据。我在一些场景中使用元数据属性,这些场景通过命名参数传递给步骤。然而,现在传递到步骤的实际元值似乎是随机分配给同一故事中任何场景的任何值。我将举例说明我正在做什么来提供更多的上下文。JBehave场景元参数4.0
Meta:
@set Smoke
Narrative:
When I do something......
Scenario: Scenario 1
Meta:
@brand One
Given ...
When ...
Then ...
Scenario: Scenario 2
Meta:
@brand Two
Given ...
When ...
Then ...
@Given(...)
public void scenarioStep(@Named("brand") String brand, @Named("url") String url) {
// Do something with brand
}
在上面的例子中,当scenarioStep被调用情景1则有时会通过一个品牌的“一”和有时“二”,当它应该永远是“一”。
有没有人有任何想法可能发生在这里?我已经尝试将Jbehave-Core更改为旧版本的4.0版本,但它们都表现出相同的行为。当我切换回3.10时,它再次正常工作。
另外,执行它们时,你的步骤是什么样的?通常,命名参数映射到步骤模式中的$分隔参数,因此可以使用@Given作为品牌名称$ brand,并带有hosturl $ url – Chrizt0f
在示例代码的底部有一个示例步骤。 –