2013-08-16 31 views
1

我們在webdriver的自動化項目中使用黃瓜。沒有問題是,如果有可能在功能文件中迭代。例如,我們需要運行一個方法50次。有什麼方法可以在特徵文件本身中調用該方法50次。如何在黃瓜的功能文件中迭代

回答

2

如果我理解正確的話,你想直接具有循環結構中的特徵文件。這不可能。 Gherkin中沒有循環結構(for,while,...),這是在特徵文件中使用的語言。當然,你可以用你喜歡的標準Java/Ruby結構在你的步驟定義中進行迭代,但我相信你知道這一點。

在小黃瓜中迭代最接近的可能是一個multiline data table argument(參見「數據表」一節)。但這只是爲了讓步驟定義中的「更多一件事」發生變得更加透明。不知道這對你是否有用。

所有這一切說:你爲什麼要這樣做?你絕對應該保留一些技術性的東西,比如在功能文件的輸出上迭代50次,並將其隱藏在步驟文件中。使用這樣的事情:

特性文件:

.... 
When the user clicks the button 50 times 
... 

步驟文件(JAVA):

@When("the user clicks the button (\\d+) times") 
public void theUserClicksTheButton(int howOften) { 
    for (int i = 0; i < howOften; i++) { 
    // do stuff for one click here 
    } 
} 

或者,在Ruby中:

When /^the user clicks the button (\d+) times$/ do |how_often| 
    how_often.to_i.times do |count| 
    # do stuff for one click here 
    end 
end 
0

你可以調用50次你的方法。我正在使用黃瓜紅寶石,所以我在下面描述如何調用方法50次。

支持/幫手/ test.rb

def test_method 
end 

功能/ step_definitions/test_steps.rb

50.times do |count| 
    test_method 
end