我在控制器中有一個flash消息,我想用rspec來測試它。 在我的控制器中,如果數據庫爲空,則設置flash[:notice]
,否則爲零。
創建一個rspec測試模型的臨時入口
def show
if(User.first.nil?)
flash[:notice] = "database is empty!"
end
end
然後在RSpec的文件我想測試兩種情況:
我:當flash[:notice]
設置爲「數據庫爲空」
二:當flash[:notice]
未設置爲幹啥
def show
it "assigns a "database is empty!" to flash[:notice]"
expect(flash[:notice]).to eq("database is empty!")
end
it "does not assign anything to flash[:notice]"
FactoryGirl.buil(:user)
expect(flash[:notice]).to be_nil
end
end
第一次rspec測試通過但第二次失敗。我不知道如何斷言第二個測試用例的數據庫不是空的。
謝謝
呢'之前do'創建之前每個「它」單獨塊工廠女孩的實例?如果這樣做,那麼第一個測試用例將失敗,因爲如果數據庫表不是空的,那麼將不會有閃存消息。 –
是的,你需要把它分成另一個'context'塊 –
你能編輯你的答案並教我關於使用上下文嗎?上下文實際上做了什麼? –