【发布时间】:2015-09-22 18:54:53
【问题描述】:
我最近从 JBehave 3.10 升级到了 4.0.4。这次升级破坏了我基于场景的元数据。我在一些场景中使用元数据属性,这些属性通过命名参数传递到步骤中。但是,现在传递到步骤中的实际元值似乎是随机分配给同一故事中任何场景的任何值。我将提供一个示例,说明我正在做什么以提供更多上下文。
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
}
在上面的示例中,当为场景 1 调用scenarioStep 时,它有时会传递一个品牌“One”,有时会传递“Two”,而它应该始终是“one”。
有人知道这里会发生什么吗?我尝试将 Jbehave-Core 更改为 4.0 版本的旧版本,但它们都表现出相同的行为。当我切换回 3.10 时,它又可以正常工作了。
【问题讨论】:
-
另外,当你执行它们时你的步骤是什么样的?通常,命名参数映射到步骤模式中的 $ 分隔参数,因此会有类似 @Given 的品牌名称 $brand 和 hosturl $url
-
我的示例代码底部有一个示例步骤。
标签: jbehave