0

Я пытаюсь посетить страницу для объекта, который я создаю внутри отдельного теста.Как я могу получить и использовать идентификатор записи, которую я создал в тесте RSpec/Capybara?

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 вызывает запись до в одном я только что создали. После этого индивидуального теста я могу получить правильную запись в тестовой консоли rails, выпустив Ticket.last.

Похоже, что запись не сохраняется в базе данных до тех пор, пока не завершится текущий тест.

Как я могу получить этот идентификатор внутри теста?

+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

Смежные вопросы