Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 使用变量重复相同的场景_Loops_Behat - Fatal编程技术网

Loops 使用变量重复相同的场景

Loops 使用变量重复相同的场景,loops,behat,Loops,Behat,我正在用Behat测试一个web应用程序API的用户权限。我需要确保几个角色不能访问某些API。因此,我需要检查这些角色是否收到来自API的禁止响应。这很好,但由于有8个不同的角色,我的功能文件变得越来越大,因为我为每个角色重复所有步骤 我当前的功能编写如下: 功能:会计 @会计 场景:我想看看会计 考虑到我的角色是“销售” 当我想拿到账目的时候 那么我应该得到禁止的回应 当我想得到资产负债表的时候 那么我应该得到禁止的回应 当我想得到损益表的时候 那么我应该得到禁止的回应 鉴于我是“项目”的角

我正在用Behat测试一个web应用程序API的用户权限。我需要确保几个角色不能访问某些API。因此,我需要检查这些角色是否收到来自API的禁止响应。这很好,但由于有8个不同的角色,我的功能文件变得越来越大,因为我为每个角色重复所有步骤

我当前的功能编写如下:

功能:会计
@会计
场景:我想看看会计
考虑到我的角色是“销售”
当我想拿到账目的时候
那么我应该得到禁止的回应
当我想得到资产负债表的时候
那么我应该得到禁止的回应
当我想得到损益表的时候
那么我应该得到禁止的回应
鉴于我是“项目”的角色
当我想拿到账目的时候
那么我应该得到禁止的回应
当我想得到资产负债表的时候
那么我应该得到禁止的回应
当我想得到损益表的时候
那么我应该得到禁止的回应
因为我有“支持”的角色
当我想拿到账目的时候
那么我应该得到禁止的回应
当我想得到资产负债表的时候
那么我应该得到禁止的回应
当我想得到损益表的时候
那么我应该得到禁止的回应
...
只有角色名改变了,其他一切都一样。我想知道是否有一种方法可以用不同的输入多次重新执行一个场景?或者有没有更好的方法来处理这种情况?

这就是我们的目的:

场景大纲:我想看看会计
考虑到我的角色是“”
当我想拿到账目的时候
那么我应该得到禁止的回应
当我想得到资产负债表的时候
那么我应该得到禁止的回应
当我想得到损益表的时候
那么我应该得到禁止的回应
示例:
|角色|
|销售|
|计划|
|支持|
  Scenario Outline: I want to see the accounting
    Given I have the role of "<role>"
    When I want to get the accounting
    Then I should get a forbidden response
    When I want to get the balance sheet
    Then I should get a forbidden response
    When I want to get the income statement
    Then I should get a forbidden response

    Examples:
      | role    |
      | sales   |
      | project |
      | support |