mam opisać bloku tak:Czy mogę używać wcześniej: wszystko z kapibar?
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
Test jest dość drogie, ponieważ znacząca praca jest wykonywana na zapisywanie dokumentu. W porządku, ale jest jeszcze wolniej, ponieważ robi to 3 razy. Tak więc oczywistą rzeczą do zrobienia jest uprzednie utworzenie bloków przed: wszystkimi blokami - ale kiedy to zrobię, tylko pierwszy blok {} zostanie wykonany poprawnie, a te następne będą wykonywane na pustej stronie, więc nie będą działać.
Czy przed: wszystkie bloki powinny działać z kapibarą, a jeśli tak, to co robię źle tutaj?
Tak, umieściłem te wolne testy w ich własnych plikach i są one uruchamiane przez CI. Mimo to wydaje się to dość nieekonomiczne, wydaje się, że może to spowodować, że specyfikacja będzie działała o wiele szybciej w przypadku wielu testów z użyciem kapibary ... – Jords