0

我正在嘗試訪問我在單個測試中創建的對象的頁面。如何檢索和使用我在RSpec /水豚測試中創建的記錄的ID?

it "should display some text" do 
    log_employee_in 
    create_ticket 
    visit "/tickets/#{Ticket.last.id}" 
    page.should have_content 'Some Text' 
end 

這裏面測試的範圍,Ticket.last帶來了創紀錄的之前到我剛剛創建的一個。經過這個單獨的測試後,我可以通過發行Ticket.last來檢索軌道測試控制檯中的正確記錄。

看來,直到當前測試結束之後,記錄才真正被持久保存到數據庫。

如何在測試中檢索此ID?

+0

你可以發佈create_ticket幫助器的內容嗎? – depa

+0

我可以,但我不知道這將如何幫助。在調用create_ticket方法之後,存在供測試使用的故障單。但它不知道/堅持到數據庫。 – Tass

回答

1

我覺得實施訪問是不正確的。如果create_ticket的其他實現是正確的並且您確信這一點。你可以試試這個:

it "should display some text" do 
    log_employee_in 
    create_ticket 
    visit ticket_path(Ticket.last.id) # you should be even able to get the ticket with Ticket.last 
    page.should have_content 'Some Text' 
end 
+0

事實證明,我有一個我完全忽略的命名空間問題。我應該試圖訪問'「/ service/tickets /#{Ticket.last.id}」'。但是,我的代碼仍然很難看。你肯定是我要用的。謝謝! – Tass