【问题标题】:Multiple facets of behavior in one scenario?一种情况下的多方面行为?
【发布时间】:2011-10-09 15:13:02
【问题描述】:

当我偶然发现this question 时,我正试图深入了解自己的问题。据我了解,正在表达和测试两种不同的功能(查看关于它们的两个Whens 和两个Givens)。这样做对吗?

【问题讨论】:

    标签: bdd scenarios


    【解决方案1】:

    有两种编写场景的方法(就此而言,还有类级别的示例)。

    一个是每个场景使用一个示例。

    另一个是每个场景都有行为的一个方面

    在这种情况下,非活跃用户和活跃用户的行为都提供了一些有价值的东西。没有其中之一,行为就毫无意义。所以把它们放在一个场景中是有道理的。这也提供了一个实用的好处,因为它通常需要时间来初始化场景的上下文。

    如果出现第三种行为(例如,您已暂停用户以及活动和非活动用户),那么拆分它们的一个很好的理由可能是。

    如果你有独立的行为方面,用不同的例子来说明它们通常是有价值的。例如:

    Given Fred bought a fridge for $100
    When Fred returns the fridge
    Then he should be refunded $100
    And the fridge should be returned to stock.
    

    这两种结果显然是行为的两个不同方面,涉及不同的利益相关者——客户和店主——因此将它们分开会更有意义。

    Given Fred bought a fridge for $100
    When Fred returns the fridge
    Then he should be refunded $100
    
    Given Fred bought a fridge for $100
    When Fred returns the fridge
    Then the fridge should be returned to stock.
    

    但是,要务实。如果一种方式比另一种方式更具可读性或可理解性,那么它应该优先于任何硬性规则。我会说我花了一段时间才学会如何有效地做到这一点,所以主要是靠经验。

    【讨论】:

      猜你喜欢
      • 2019-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-09
      • 2017-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多