代码之家  ›  专栏  ›  技术社区  ›  Torikul Alam

如何在java中使用嵌套场景大纲

  •  2
  • Torikul Alam  · 技术社区  · 7 年前

    2支持我有一个场景大纲,如

    @Scenario1
    Scenario Outline:Scenario one
        Given fill up login fields "<email>" and "<password>"
        And click the login button
     Examples:
          | email            | password |
          | someEmailAddress | SomePassword | 
          | someEmailAddress2| SomePassword2 | 
    

    另一种情况是

    @Scenario2
    Scenario Outline:Scenario two
        Given fill up  fields "<value1>" and "<value2>"
     Examples:
          | value1  | value2  |
          | value11 | value21 | 
          | value12 | value22 | 
    

    我如何运行这样的场景:使用“someEmailAddress”登录并填充所有scenario2值,然后使用“someEmailAddress2”登录并执行相同的操作。

    2 回复  |  直到 7 年前
        1
  •  5
  •   diabolist    7 年前

    黄瓜场景是我们用来描述行为的工具,即发生了什么以及为什么它很重要。它们不是编程测试的工具。有效使用Cucumber的方法是保持场景简单,让步骤定义调用的代码为您编程。

    写黄瓜场景的艺术是每个人都可以谈论的

    1. 我们需要设置的状态,以便我们可以做一些事情(Givens)
    2. 我们希望在互动后看到什么。(然后)

    对于你的场景,我们有

    Scenario: Login
      Given I am registered
      When I login
      Then I should be logged in
    

    Scenario: See my profile
      Given I am logged in
      When I view my profile
      Then I should see my profile
    

    现在为了实现这一点,我们可能需要做更多的工作,因为这个场景还没有注册用户。我们可以通过多种方式解决这个问题

    1) 添加另一个给定的,可能在背景中

    Background:
        Given I am registered
    
      Scenario ...
        Given I am logged in
    

    2) 我们可以在登录步骤中注册,例如:。

       Given "I am logged in" do
          @i = register_user
          login_as user: @i
        end 
    

    注意,在这一步中,我们是如何调用helper方法的 register_user login_as 为我们做这项工作。

    这是开始使用黄瓜的方法。注意,我的场景中没有提到我们如何登录,没有电子邮件,没有密码,没有填写任何内容。为了有效地使用Cucumber,您必须将这些细节下推到步骤定义和它们调用的助手方法中。

    总结

        2
  •  2
  •   Murthi    7 年前

    cucumber中不支持嵌套场景大纲。但你们可以用下面的方法来克服它。

    Scenario Outline:Scenario one and two
        Given fill up login fields "<email>" and "<password>"
        And click the login button
        And fill up  fields "<value1>" and "<value2>"
     Examples:
          | email            | password      | value1  | value2  |
          | someEmailAddress | SomePassword  | value11 | value21 | 
          | someEmailAddress | SomePassword  | value12 | value22 | 
          | someEmailAddress2| SomePassword2 | value11 | value21 | 
          | someEmailAddress2| SomePassword2 | value12 | value22 |