2015-06-16 9 views
0

我是黃瓜和小黃瓜的新手,我想我會遇到這種情況。主頁包含許多功能,當然你想從家中開始並執行任務功能。你如何處理不要重複自己的小黃瓜腳本?

Given user logged into home page 
When user performs feature 1 
Then ... 

Given user logged into home page 
When user performs feature 2 
Then ... 

當您爲第二個功能運行Cucumber時,它會抱怨Given步驟不明確。

如何解決此問題?您可以爲第二個功能稍微改變一下給定步驟。通過這樣做,你實際上在重複着你自己。想法,任何人?

回答

1

如果用戶登錄到網頁是爲功能在您運行的測試,然後把它在後臺預先必要的:

Background: 
    Given user logged into home page 

然後:

Scenario: 1 
When user performs feature 1 
Then ... 

Scenario: 2 
When user performs feature 2 
Then ... 
+0

我想我將不得不把一切都成一個文件。我真的不知道如何重構這種情況。把它想象成登錄到eBay。您可以出售,出價,觀看和購買。他們都登錄到相同的主頁。 – Ben

+2

我從來沒有遇到過這個問題,Cucumber(以我的經驗)查找步驟文件中的所有步驟,因此只需將其定義在一個文件中,然後將其用於許多功能。 – floum

+0

我明白你的意思了......你不需要兩次添加登錄實現......你可以在1步定義文件中添加一次,並在你的特性中重複使用它...... – Bodao

0

我設置礦小幅上漲不同,以你爲例

Given user logged into home page 
When user performs feature 1 
Then ... 

Given user logged into home page 
When user performs feature 2 
Then ... 

在我相應的步驟文件中,我只是有一個在頂部可重複使用的步驟段(如不要忘了所有的比賽都在正則表達式)

# Reusable Steps 
Given(/^user logged into home page$/) do 
    # login steps here 
end 

# Feature 1 
When(/^user performs feature 1$/) do 
    # steps here 
end 

# Feature 2 
When(/^user performs feature 2$/) do 
    # steps here 
end 

個人喜好我猜,但以爲我會分享