2011-10-19 32 views
1

我正在嘗試創建一個黃瓜場景,檢查是否爲「編輯發佈」頁面加載了元素。但是,我的麻煩是我不知道如何創建一個將它引導到頁面的路徑。使用對象ID創建路徑以與黃瓜場景進行映射

的一般路徑是這樣的:/發佈/ ID /編輯
即/發佈/ 11 /編輯

這是我posting.feature場景

# Editing existing post 
Scenario: Saving the edits to an existing post 
    Given I am logged in 
    Given there is a posting 
    Given I am on the edit posting page 
    When I fill in "posting_title" with "blah" 
    And I fill in "posting_location" with "blegh" 
    When I press "Update posting" 
    Then I should see "Posting was successfully updated." 

我與一些廠圍繞涉足女孩的東西,但我沒有適當的使用它的知識(如果它提供了一個解決方案),並沒有找到一個相關的例子。 我也看到很多關於'Pickle'的建議,但如果可能的話,我想避免這種路線,以保持簡單,因爲我的經驗非常有限。

謝謝!

回答

1

在您的網站上是否有鏈接可讓某人進入編輯頁面?然後,你可以這樣做:

Given I am on the homepage 
And I follow "Posts" 
And I follow "Edit" 

這是假定有自己的主頁,其文字是一個帖子鏈接,然後另外一個名爲編輯結果頁面。這是實現這一目標的最佳方式,因爲應該有一個直接路由到您正在測試的任何頁面。在web_steps.rb也提供了這些步驟

你也可以做一個自定義步驟像你Given I am on the edit posting page確實存在,代碼會是這樣的:

Given /^I am on the edit posting page$/ do 
    visit("/posting/11/edit") 
end 

,你當然也可以概括像I am on the edit posting page for posting 11 。但一般來說,黃瓜測試是驗收測試,這意味着不要繞過這樣的事情。你應該有一個鏈接到可以點擊的編輯頁面。

+0

謝謝你的建議:)!我會嘗試一下(似乎它應該工作)。我實際上想出了一個使用Factory Girl的解決方案,但由於我的排名很低,我無法發佈我的解決方案.. u.u。我還能再過7個小時。 – pka

0

我想出了一個解決方案,但我不確定它的有效性如何。我結束了使用工廠女孩(安裝寶石)。 我保持我的方案一樣。


功能/ step_definitions我創建posting_steps.rb

Given /^there is a posting$/ do 
    Factory(:posting) 
end 


功能/支持我創建了一個文件factories.rb裏面如下:

Factory.define :posting do |f| 
    f.association :user 
    f.title 'blah' 
    f.location 'Some place' 
end 

在我的路徑中。RB我用

when /the edit posting page/ 
    edit_posting_path(Posting.first) 



它是如何工作(或至少我怎麼想它的工作原理)的是,作爲

Given there is a posting 

被執行時,posting_step.rb是被調用(工廠(:發佈)基本上是Factory.create(:發佈)),反過來使用事實ory的定義我在factories.rb中創建。這導致創建一個發佈的實例。

然後在我paths.rb

when /the edit posting page/ 
    edit_posting_path(Posting.first) 

被傳遞從實例ID,最終獲得可能類似於發佈/ 1 /編輯路徑/和測試繼續在它的途中!

如果有任何更正要做,請讓我知道,因爲我只是在學習繩索。 希望這會幫助其他新手!

+0

對於它是如何工作的,你絕對是對的。這個解決方案很有效,但總的來說,驗收測試的目的是通過僞造編輯頁面始終用於首次發佈(儘管它有效)而不繞過某些東西。您想要使用通過您的網站提供的鏈接/操作。然而,這是有效的,如果這是你的事情,那很好。 – MrDanA

+0

啊,gotcha。感謝您的珍聞! – pka