Tengo un bloque describen así:¿Puedo usar antes: todo con capibara?
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
La prueba es bastante caro ya que el trabajo se hace significativo en el ahorro del documento. Está bien, pero es aún más lento ya que en realidad lo está cargando 3 veces. Entonces, lo más obvio es hacer que los bloques anteriores entren antes: todos los bloques, pero cuando lo hago, solo el primer bloque it {} se ejecuta correctamente y los que siguen se ejecutan en una página vacía, por lo que fallan.
Son antes: se supone que todos los bloques funcionan con carpincho, y si es así, ¿qué estoy haciendo mal aquí?
Sí, he puesto estas pruebas lentas en sus propios archivos y las ejecuta el CI. Aún así, parece bastante derrochador, parece que esto podría hacer que las especificaciones corran mucho más rápido para una gran cantidad de pruebas con el capibara ... – Jords