Trong Rails của tôi 3 ứng dụng, tôi có một spec RSpec để kiểm tra hành vi của một lĩnh vực nhất định (vai trò trong tài mô hình) để đảm bảo rằng giá trị nằm trong một danh sách các giá trị hợp lệ.Dùng lại RSpec hành vi xác nhận
Bây giờ tôi sẽ có cùng một thông số kỹ thuật chính xác cho một trường khác, trong một mô hình khác với một tập hợp các giá trị hợp lệ khác. Tôi muốn trích xuất các mã phổ biến thay vì chỉ sao chép và dán nó, thay đổi các biến.
Tôi tự hỏi liệu đây có phải là trường hợp sử dụng ví dụ chia sẻ ví dụ hoặc kỹ thuật sử dụng lại RSpec khác không.
Dưới đây là đoạn code RSpec liên quan:
describe "validation" do
describe "#role" do
context "with a valid role value" do
it "is valid" do
User::ROLES.each do |role|
build(:user, :role => role).should be_valid
end
end
end
context "with an empty role" do
subject { build(:user, :role => nil) }
it "is invalid" do
subject.should_not be_valid
end
it "adds an error message for the role" do
subject.save.should be_false
subject.errors.messages[:role].first.should == "can't be blank"
end
end
context "with an invalid role value" do
subject { build(:user, :role => 'unknown') }
it "is invalid" do
subject.should_not be_valid
end
it "adds an error message for the role" do
subject.save.should be_false
subject.errors.messages[:role].first.should =~ /unknown isn't a valid role/
end
end
end
end
gì sẽ là trường hợp tốt nhất để tái sử dụng mã này, nhưng giải nén vai trò (lĩnh vực này được xác minh) và tài khoản :: VAI TRÒ (thu giá trị hợp lệ) vào các tham số được chuyển tới mã này?
Thật tuyệt vời, cảm ơn. – kolrie