【问题标题】:BDD Gherkin Scripts: Same group of scenarions against multiple rolesBDD Gherkin Scripts:针对多个角色的同一组场景
【发布时间】:2016-10-14 15:53:13
【问题描述】:

我有一个功能需要测试多个场景,其中用户以多个可能的角色登录(结果应该相同)。

是否可以将示例表放入后台?例如:

Feature: My general set of tests

Background:
Given I am logged in 
And I am logged in as <role>

Examples:
| role    |
| Sales   |
| Support |
| Admin   |
| Auditor |

Scenario: tests1 blah...

Scenario Outline: tests 2 blah...

所以我想要做的是迭代具有不同背景上下文的 who 功能文件,而不是必须为每个角色维护一个单独的功能文件。这可能吗?

【问题讨论】:

    标签: testing cucumber bdd gherkin


    【解决方案1】:

    不,这是不可能的。您可以获得的最接近的是步骤定义“我以常用角色之一(销售、支持、管理员、审计员)登录”,其中每次都随机选择实际角色。这当然会使您的测试具有不确定性,如果您 100% 肯定这个角色确实对结果绝对没有影响,这可能是可以接受的。当然,在这种情况下,您应该考虑在您的场景中根本不提及角色。

    【讨论】:

      【解决方案2】:

      请记住,BDD 实际上并不是关于测试。我们正在使用示例来说明我们想要的行为。您所需要的只是一个提供行为示例的场景。

      如果其中一个角色提供不同的行为,那么也有该行为的示例。

      测试所有角色的结果是否相同的更好地方可能是在单元测试级别,无论哪个类将角色与不同的结果联系起来。当然,您可以手动测试它。如果你做对了并且它是手动工作的,那么很有可能它不会在不破坏你所拥有的一个例子的情况下被破坏。够了。

      如果您尝试像这样涵盖每个角色的所有排列,您最终会得到一个非常缓慢的构建和太多的场景,这些场景都不再有趣了。用你试图说明的例子而不是测试来思考,这样你会更轻松。

      【讨论】:

      • 至此我认为你是对的。我认为解决方案是使用单个典型角色并在其上运行场景,并有一个贯穿所有角色选项的单一场景,以确保它们在该功能中的特定单一功能上工作。
      猜你喜欢
      • 2011-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多