【问题标题】:java-Share data among different scenarios in a single featurejava-在单个功能中在不同场景之间共享数据
【发布时间】:2015-04-03 03:57:59
【问题描述】:

黄瓜 java

我的功能文件看起来像

功能 场景1:....生成唯一编号

场景2:....对生成的唯一编号进行一些验证

使用spring进行依赖注入,将@Scenario1生成的唯一编号赋值给一个String,同样需要跨Scenario2使用。

但我得到了一个字符串值为 null @Scenario2。我认为依赖注入@scenario2 正在创建一个新对象,并将默认值设为 null。

请帮我解决这个问题。需要知道如何在单个功能中跨不同场景传递 java 对象..

【问题讨论】:

  • 场景应该是无状态的,也许你应该考虑把这两个东西放在一个场景中?

标签: java spring dependency-injection cucumber feature-file


【解决方案1】:

使用单例?

1) 在第一种情况下生成唯一编号 2) getInstance() 在第 2 次​​p>

【讨论】:

  • 默认所有注入的bean都是单例的。是吗?此外,当我们将其设为静态时,实例可以跨场景使用。我不确定黄瓜 DI 是否正在执行其他操作
【解决方案2】:

使用gherkin with qaf,它提供了在步骤或场景之间共享信息的不同方式。

例如,如果您的步骤返回值,您可以使用如下:

Then get text of 'element' 
And store into 'applicaiton.refID'

要引用任何存储值或任何属性,您可以使用${property}。例如

Given application to update is '${applicaiton.refID}'

您可以在任何后续情况下applicaiton.refID。 如果您想在 java 步骤中执行此操作,您可以编写如下代码:

//store value for further use
getBundle().setProperty("applicaiton.refID","myvalue");

//retrieve applicaiton.refID any where
getBundle().getString("applicaiton.refID");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多