У меня есть блок описания, подобный этому:
describe "Documents" do
subject { page }
let (:course) { FactoryGirl.create(:course) }
describe "new" do
before do
visit new_course_document_path(course)
fill_in "Name", with: "TestDocument"
attach_file "Original document", "#{Rails.root}/spec/fixtures/03_GUI_concurrency.pdf"
end
it { should have_selector('title', text:"Upload document")}
it { should have_selector('h1', text:"Upload document")}
describe "when clicking upload" do
before { click_button "Upload Document" }
it "should have the document name" do
subject.should have_selector('p', text: "TestDocument")
end
it "should have 22 pages" do
subject.should have_selector('.page', count: 22)
end
describe "when visiting the course page" do
before { visit course_path(course) }
it { should have_selector 'li', text: "TestDocument"}
end
end
end
Тест довольно дорогой, так как проделана значительная работа по сохранению документа. Это хорошо, но это даже медленнее, так как он делает эту загрузку 3 раза. Итак, очевидная вещь, которую нужно сделать, - это превратить блоки before в before: все блоки - но когда я это делаю, правильно выполняется только первый блок it {}, а последующие выполняются на пустой странице, поэтому они терпят неудачу.
Это раньше: все блоки должны работать с капибарой, и если да, то что я тут не так делаю?