2014-01-20 47 views
0

我想在"When I sign up with the following information"行中使用下面代碼中的示例,而不必指定每個參數,也不必在示例中重複該表。黃瓜重複利用示例

這可能嗎?

Scenario Outline: signing up a user that already exists 
    Given I am registered as "<username>" with password "<password>" 
    When I sign up with the following information 
    Then I should be on the sign up page 
    And I should see "user already registered" 
    Examples: 
     | email  | username | name  | password | password_confirmation | city  | mobile_numbers | 
     | [email protected] | existent | some user | temp123  | temp123     |  foobar | 70 707070  | 

回答

0

當您生成黃瓜項目文件夾,該結構將包含一個名爲特徵文件夾中的支持目錄中env.rb紅寶石文件(連同step_definitions文件夾)。在這裏,您可以定義您的方法,變量等,它們將作爲同一項目內所有其他測試的常見源。

由於Cucumber是Ruby gem,所以數據是以Ruby的格式定義的。您可以將它們定義爲方法或變量。我更喜歡將它們定義爲方法(在ruby中,方法返回它們的最後一行)。所以,你的方法看起來就像

def email 
     "[email protected]" # returns this when email is called 
    end 

    def username 
     "existent" 
    end 

等等...

您可以對其進行優化來滿足您的需求。你將在你的ste_definition文件中調用它們,就像調用任何普通的ruby函數一樣。

+0

我可能沒有很好地解釋我自己......我想重用下面的表格例子:在「當我註冊以下信息時」。我想看看這是否可能,而不必做如下事情:「當我註冊以下信息:」「,」「,」「,」「... – Abdo

+0

在這種情況下,你會想在env.rb中創建一個Ruby中的方法,它將包含所有這些值,並且你將在你的step_definition文件中調用該函數,所以它將類似於 def login # - 在這裏創建變量 # - 執行動作 結束 現在,你可以調用登錄方法,它會爲你做所有事情。在GitHub中的示例項目有一個非常基本的例子。 – ucsunil

+0

對不起,但我無法格式化代碼在評論中 – ucsunil