Tôi có một kiểm tra điều khiển đơn giản, có chứa a.o. đoạn mã sau:Tăng tốc kiểm tra bộ điều khiển rspec: sử dụng trước khi tất cả không thành công?
context "POST :create" do
before (:each) do
post :create, :user_id => @user.id,
:account => { .. some data ... }
end
it { response.status.should == 201 }
it { response.location.should be_present }
end
Bây giờ tôi nghĩ ra một cách rất đơn giản để tăng tốc độ thử nghiệm này, và sử dụng một before(:all)
thay vì một before(:each)
. Trong trường hợp đó, bài đăng chỉ được thực hiện một lần.
Vì vậy, tôi đã viết:
context "POST :create" do
before (:all) do
post :create, :user_id => @user.id,
:account => { .. some data ... }
end
it { response.status.should == 201 }
it { response.location.should be_present }
end
Nhưng sau đó tôi nhận được các lỗi sau đây:
RuntimeError:
@routes is nil: make sure you set it in your test's setup method.
Đây có phải là do thiết kế? Có cách nào để vượt qua nó?
Bạn đã tìm thấy giải pháp cho điều này chưa? Tôi đã chạy vào cùng một vấn đề. – ktusznio