Cucumber 在场景和功能中重用dataTable

Cucumber 在场景和功能中重用dataTable,cucumber,bdd,Cucumber,Bdd,这是我的功能文件(例如) 特色:花的故事 我买了一些花做一束花送给我的朋友 场景:制作一束鲜花 假设我有以下的花 |莲花| |茉莉花| |玫瑰| 当我用花做一束花的时候 那么花束应该有下面的花 |莲花| |茉莉花| |玫瑰| 场景:给我朋友的礼物束 假设我有一束花,上面有以下的花 |莲花| |茉莉花| |玫瑰| 当我把它送给朋友的时候 他打开花束上的花 那么我的朋友应该有下面的花 |莲花| |茉莉花| |玫瑰| 问题:flowers(数据表)正在重复 问题:我如何重用数据表(可能带有占位符)来表

这是我的功能文件(例如)

特色:花的故事 我买了一些花做一束花送给我的朋友 场景:制作一束鲜花 假设我有以下的花 |莲花| |茉莉花| |玫瑰| 当我用花做一束花的时候 那么花束应该有下面的花 |莲花| |茉莉花| |玫瑰| 场景:给我朋友的礼物束 假设我有一束花,上面有以下的花 |莲花| |茉莉花| |玫瑰| 当我把它送给朋友的时候 他打开花束上的花 那么我的朋友应该有下面的花 |莲花| |茉莉花| |玫瑰| 问题:flowers(数据表)正在重复

问题:我如何重用数据表(可能带有占位符)来表示我需要的任何地方的花?(假设我不需要场景大纲)

首先,请将更多精力放在这句话上“Cucumber不是一个工具,它是一个思维过程”。现在让我们先看看什么是场景大纲

场景大纲:简而言之,需要执行多个场景,具有相同的步骤模式和不同的输入值

希望,这更清楚。现在让我们转到数据表

数据表:DT概念出现在画面中,用于从场景/场景大纲的特定/单独步骤中使用步骤内定义方法访问测试数据。数据表是在某个步骤下定义的,而不是在某个位置,在该位置上,数据表可供少数/所有步骤访问

将给您建议,对于您的场景,场景大纲应该是正确的概念,而不是数据表。根据我的理解和知识,不可能在占位符下定义数据表并用于您提到的多个步骤

关于数据表的更多信息:有时场景中的步骤需要描述不容易在一行给定的时间或时间中匹配的数据。Cucumber数据表是以表格格式从特征文件传递测试数据的最常用方法之一。然后,您可以在步骤定义方法中以列表和地图的形式使用这些数据。

首先,请更多地关注这句话“Cucumber不是一个工具,它是一个思维过程”。现在让我们先看看什么是场景大纲

场景大纲:简而言之,需要执行多个场景,具有相同的步骤模式和不同的输入值

希望,这更清楚。现在让我们转到数据表

数据表:DT概念出现在画面中,用于从场景/场景大纲的特定/单独步骤中使用步骤内定义方法访问测试数据。数据表是在某个步骤下定义的,而不是在某个位置,在该位置上,数据表可供少数/所有步骤访问

将给您建议,对于您的场景,场景大纲应该是正确的概念,而不是数据表。根据我的理解和知识,不可能在占位符下定义数据表并用于您提到的多个步骤


关于数据表的更多信息:有时场景中的步骤需要描述不容易在一行给定的时间或时间中匹配的数据。Cucumber数据表是以表格格式从特征文件传递测试数据的最常用方法之一。然后,您可以在步骤定义方法中以列表和映射的形式使用这些数据。

您可以使用后台:

Feature: The flower story
  I bought some flowers to make a bouquet to gift it to my friend

Background:
 Given I have the following flowers
      | Lotus   |
      | Jasmine |
      | Rose    |

  Scenario: Make a bouquet
    When I make a bouquet with the flowers
    Then the bouquet should have the below flowers
      | Lotus   |
      | Jasmine |
      | Rose    |

  Scenario: Gift bouquet to my friend
     When I gift it to my friend
    And he unwraps the flowers from the bouquet
    Then My friend should have the below flowers
      | Lotus   |
      | Jasmine |
      | Rose    |

您可以使用背景:

Feature: The flower story
  I bought some flowers to make a bouquet to gift it to my friend

Background:
 Given I have the following flowers
      | Lotus   |
      | Jasmine |
      | Rose    |

  Scenario: Make a bouquet
    When I make a bouquet with the flowers
    Then the bouquet should have the below flowers
      | Lotus   |
      | Jasmine |
      | Rose    |

  Scenario: Gift bouquet to my friend
     When I gift it to my friend
    And he unwraps the flowers from the bouquet
    Then My friend should have the below flowers
      | Lotus   |
      | Jasmine |
      | Rose    |

谢谢你的详细描述。假设我没有第二种情况。很明显,场景大纲是不可能的。现在,如果您看看我的第一个场景,我已经重复了两次数据(分两步)。是否有任何建议的做法来避免这种重复?根据我的最佳知识和经验,任何步骤都只能使用该步骤下定义的数据表,而不能使用其他地方的数据表。所以,若只有一个场景,并且多个步骤需要执行公共数据表,那个么它将根据要使用数据表的步骤数重复。无法避免这些重复值。这里需要理解的是,对于我们编写数据表的步骤,存在数据表关联,然后数据关联在功能文件中的步骤和步骤方法实现之间流动。所以必须遵循它。感谢您的详细描述。假设我没有第二种情况。很明显,场景大纲是不可能的。现在,如果您看看我的第一个场景,我已经重复了两次数据(分两步)。是否有任何建议的做法来避免这种重复?根据我的最佳知识和经验,任何步骤都只能使用该步骤下定义的数据表,而不能使用其他地方的数据表。所以,若只有一个场景,并且多个步骤需要执行公共数据表,那个么它将根据要使用数据表的步骤数重复。无法避免这些重复值。这里需要理解的是,对于我们编写数据表的步骤,存在数据表关联,然后数据关联在功能文件中的步骤和步骤方法实现之间流动。所以必须遵循。添加相关问题-添加相关问题-