Tôi có một mô tả khối như thế này:Tôi có thể sử dụng trước đây: tất cả đều có capybara không?
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
Bài kiểm tra là khá đắt tiền từ công việc quan trọng được thực hiện trên lưu tài liệu. Đó là tốt, nhưng nó thậm chí còn chậm hơn vì nó thực sự làm điều đó tải lên 3 lần. Vì vậy, điều hiển nhiên cần làm là làm cho các khối trước đó thành trước: tất cả các khối - nhưng khi tôi làm điều đó, chỉ khối đầu tiên {} được thực thi đúng và các khối sau đó đang thực thi trên một trang trống để chúng không thành công.
Trước đây: tất cả các khối phải làm việc với capybara, và nếu vậy thì tôi đang làm gì sai ở đây?
Vâng, tôi đã đặt các bài kiểm tra chậm này vào các tệp của riêng chúng và chúng được điều hành bởi CI. Tuy nhiên, nó có vẻ khá lãng phí, có vẻ như điều này có thể làm cho các thông số kỹ thuật chạy nhanh hơn rất nhiều cho rất nhiều bài kiểm tra bằng cách sử dụng capybara ... – Jords