При написании спецификаций функций вы не можете использовать build_stubbed
для записей, к которым ваше приложение должно иметь доступ. Предполагая, что category
, который вы создаете в блоке before
, - это то, что вы ожидаете от приложения для отображения на странице, вам нужно фактически создать запись, потому что приложение обращается к ней через запрос БД.
before :each do
category = create(:category, name: "Pants")
end
Кроме того, вы никогда не должны использовать базовые c RSpe c сопоставители (eq
, и c) с объектами Capybara, вместо этого вы должны использовать сопоставители, предоставленные Capybara, которые позаботятся о асинхронный характер тестов с использованием браузера, обеспечивающий поведение ожидания / повторной попытки. Поэтому вместо
expect(current_path).to eq("pants")
у вас должно быть что-то вроде
expect(page).to have_current_path("pants")