Cucumber 如何使用BDD指定方程式

Cucumber 如何使用BDD指定方程式,cucumber,bdd,Cucumber,Bdd,假设有一个功能可以根据几个变量的值计算结果,并且有一个公式指定如何计算结果 现在,我需要在BDD语法中编写一个场景,并使用cucumber编写测试,以测试用BDD语法编写的场景 对于编写场景,我可以想到两种选择 写一个场景,捕捉方程中的所有细节,这样方程本身就可以从场景中推导出来 通过将各种值应用于方程中的变量并写入预期结果,编写多个场景 选项1很难编写,但它抓住了其中的方程式 选项2更容易理解,但方程式本身在场景中的任何地方都没有定义。由于我的公司指示将所有规范作为BDD场景编写,因此我没有其

假设有一个功能可以根据几个变量的值计算结果,并且有一个公式指定如何计算结果

现在,我需要在BDD语法中编写一个场景,并使用cucumber编写测试,以测试用BDD语法编写的场景

对于编写场景,我可以想到两种选择

写一个场景,捕捉方程中的所有细节,这样方程本身就可以从场景中推导出来

通过将各种值应用于方程中的变量并写入预期结果,编写多个场景

选项1很难编写,但它抓住了其中的方程式

选项2更容易理解,但方程式本身在场景中的任何地方都没有定义。由于我的公司指示将所有规范作为BDD场景编写,因此我没有其他地方可以在规范中编写公式


哪个选项是正确的方法?或者我在这里遗漏了什么?

场景是说明需求或定义的具体示例

大多数人把他们的场景规则——方程式定义、接受标准或行为背后的基本原理——放在特征文件顶部的简介中

例如,如果我在写康威的《生活游戏》,我可能会有这样一个功能文件:

Feature: Rules for cells
  Cells die if there are fewer than 2 neighbours (lonely)
  Cells die if there are more than 3 neighbours (starving)
  Cells are born in empty spaces with 3 neighbours

Scenario: Lonely cells die
  Given a grid which looks like
    ........
    .X......
    ....XX..
    ........
等等

因此,在您的案例中,要素文件可以包含方程式的定义,场景是方程式的具体示例

Feature: My Equation
    x = 3y + max(z, u)

Scenario: z is bigger than u
    Given y = 3, z = 10 and u = 5
    When I calculate the result
    Then x should be 19.

我猜你的方程式可能比这更复杂,但希望它能给你一个想法。

场景是说明需求或定义的具体示例

大多数人把他们的场景规则——方程式定义、接受标准或行为背后的基本原理——放在特征文件顶部的简介中

例如,如果我在写康威的《生活游戏》,我可能会有这样一个功能文件:

Feature: Rules for cells
  Cells die if there are fewer than 2 neighbours (lonely)
  Cells die if there are more than 3 neighbours (starving)
  Cells are born in empty spaces with 3 neighbours

Scenario: Lonely cells die
  Given a grid which looks like
    ........
    .X......
    ....XX..
    ........
等等

因此,在您的案例中,要素文件可以包含方程式的定义,场景是方程式的具体示例

Feature: My Equation
    x = 3y + max(z, u)

Scenario: z is bigger than u
    Given y = 3, z = 10 and u = 5
    When I calculate the result
    Then x should be 19.
我猜你的方程可能比这更复杂,但希望它能给你这个想法