【问题标题】:JBehave: Parameters within table, such as <TODAY>JBehave:表内参数,如<TODAY>
【发布时间】:2013-11-05 19:43:48
【问题描述】:

我想知道是否有人知道如何做到这一点。

我有一个类似于以下 sn-p 的场景。在表中,我希望有可以在运行测试时替换的参数。示例 sn-p:

...
Given blah blah blah
Then yada yada yada
...
And the quotes should have details:
|Ref|Product|Issue Date|Maturity Date|
|<A VALID REF>|Vanilla Option|<TODAY>|<TODAY+3M>

所以我想知道的是,JBheave 是否支持在表格中进行这种参数化,我可以在表格中为代码中的某处定义值并在运行时替换它。

我没有找到与此相关的文档,所以我怀疑我必须手动完成。这真的没问题,但如果有更好的方法,那么我会热衷于学习。

【问题讨论】:

    标签: java testing bdd jbehave


    【解决方案1】:

    我有一段时间没有玩过 JBehave(从 2.X 开始),但它当时不支持它,我认为它现在不太可能支持它。

    您在这里所做的是设计一个适用于所有示例的场景。这不是一个真正的场景——它是接受标准,以场景形式编写。如果这样做,您将错过使用具体示例的其他好处,尤其是它们激发想象力、唤起有趣行为以及允许提出有用的问题并与业务利益相关者进行对话的方式。

    在这种情况下,如果产品是这个场景的结果中最有趣的东西,那么更好的做法是单独调用它,例如

    那么引号应该包含 Vanilla Option 产品。

    更强大的是找出结果对谁有用,并提及它在什么方面有用,例如

    然后用户应该通过电子邮件收到报价,以诱使他们购买 Vanilla Option。

    请注意,在我给出的示例中,实际上受益的是业务,而不是真正为用户完成。

    通过在更高的抽象级别上制定步骤,您会发现更容易向用户/利益相关者指出结果的价值,这将有助于您进行更好的对话。对话,而不是自动化,是 BDD 的核心。

    这就是为什么我不相信 JBehave 支持它,我也不认为它应该支持。

    【讨论】:

      【解决方案2】:

      我认为这就是你想要做的。

      我在测试中使用了大量随机数据,例如人名。当我生成随机名称时,我将其写入 Java 类以存储此类数据,然后我可以稍后再调用。

      在故事中我会有类似的东西

      When I create a new customer <customer>
      When I do some stuff
      
      When I do some more customer stuff
      |NAME    |VALUE     |
      |custName|<CUSTNAME>|
      |dob     |01/01/1970|
      
      When I do some more stuff
      
      Examples:
      |<customer>|<BLAH1>|<BLAH2>|<CUSTNAME>|<BLAH4>|
      |\$random  |para1  |para2  |\$name    |para4  |
      |George    |para1  |para2  |Peter     |para4  |
      

      在我使用的表中提取数据的类中:

      if (value.equalsIgnoreCase("$name") {
          this.value = getStoredData().getName();
      } else {
          this.value = value;
      }
      

      我个人的约定是,我在故事中的变量周围使用 ,在 Java 代码生成或调用变量值的变量处使用 $。

      如果您在示例表中使用 $,它必须被转义,因此是反斜杠

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多