2012-12-07 110 views
1

我正在努力學習如何編寫用於坦率(黃瓜測試腳本)的測試腳本。寫作黃瓜測試用例

這是我寫

When I navigate to "aaa" 
Then I should be on the aaa screen 
Then I navigate to "bob" 
Then I should be on the bob screen 

When /^I navigate to "(.*?)"$/ do |aaa| 
    touch "view:'UITabBarButton' marked:'aaa'" 
END 

Then /^I should be on the aaa screen$/ do 
    check_element_exists "view:'UIImageView' marked:'xxx'" 
END 

Then /^navigating to "(.*?)"$/ do |bbb| 
    touch "view:'UITabBarButton' marked:'bbb'" 
end 

Then /^I SHould be on the bbb screen$/ do 
    check_element_exists "view:'UIImageView' marked:'zzz'" 
end 

其中字母都寫,而不是視圖/圖片名稱

這就是我得到運行腳本

/用戶/ janogrodowczyk而/SMHI/ios/ios/Frank/features/step_definitions/test_steps.rb:14:語法錯誤,意外$ end,期待kEND(SyntaxError)

而且我不知道我做錯了,因爲第2行

When I navigate to "aaa" 
Then I should be on the aaa screen 

工作正常,只有他們沒有其餘的運行。

問候

回答

3

ENDend是不同的Ruby關鍵詞。

END表示要在程序結束之前執行的代碼。

end表示一類,方法,控制結構的端部等

3

導航到「AAA」和「BBB」實際上是兩種情形。在一種情況下不能「導航」。

所以,首先重構你的步驟,從

When I navigate to "aaa" 
Then I should be on the aaa screen 
Then I navigate to "bob" 
Then I should be on the bob screen 

要:

Given blah blah 
When I navigate to "aaa" 
Then I should be on the aaa screen 

Given blah blah 
When I navigate to "bbb" 
Then I should be on the bbb screen 

但是,等待。爲什麼重複? `方案綱要」可以幫助你測試類似的情況。

Scenario Outline: Visit UI 
Given blah blah 
When I navigate to <link> 
Then I should see <screen_name> screen 

Examples: 
    | link | screen_name | 
    | aaa | aaa screen | 
    | bbb | bbb screen | 
    | ccc | ccc screen | 
+0

感謝您的回答,它工作正常,但我有一個問題,而寫更長的腳本。 – Jan

+0

由於它工作得很好,碰我怎麼做才能寫長我不斷地得到不同類型的語法錯誤,我應該創建一個新的文件還是一切都可以寫在相同的? – Jan

+0

我的榮幸:)對於「更長的腳本」的新問題,我不太明白。添加更多方案?只需將多個方案添加到一個功能文件中,只要它們具有相同的功能即可。您還可以根據需要創建任意數量的功能文件。 –