我正在學習RSpec,我不禁注意到我的代碼中有很多重複。以下是其他許多人的兩個例子。有沒有辦法創建一個共享測試,而不必經過每個人的屬性?如何幹燥Rails的RSpec測試
describe "validation" do
describe "user_id" do
it "should not be blank or nil" do
@comment.user_id = nil
@comment.should_not be_valid
@comment.user_id = " "
@comment.should_not be_valid
end
it "should an integer" do
@comment.user_id = "a"
@comment.should_not be_valid
end
end
describe "post_id" do
it "should not be blank or nil" do
@comment.post_id = nil
@comment.should_not be_valid
@comment.post_id = " "
@comment.should_not be_valid
end
it "should an integer" do
@comment.post_id = "a"
@comment.should_not be_valid
end
end
end
一個改進,但沒有我希望的那麼多。我只是'example_groups',但我不確定它們是否可以在這種情況下使用。 – dee
我剛剛添加了一些關於'shared_examples'的內容,然後搜索了'example groups',以發現它們是相同的。 D'哦!無論如何,我認爲他們當然可以在上下文中使用。 – aceofbassgreg
這適用於對象的實例變量嗎?假設你想爲'foreign_keys'創建'shared_examples',不應該是'nil'或'blank',你會如何動態地將密鑰傳遞給共享示例?你給的例子傳遞了一個完整的對象:'Vampire.new' – Mohamad