0
我看邁克爾·哈特爾的Rails的教程,在章9.2.2,哈特爾說,我們不能使用水豚直接發出看跌/補丁請求到模型,爲什麼水豚不能直接提交行動?
這是測試代碼:
describe "for wrong users" do
let(:user) { FactoryGirl.create(:user) }
let(:wrong_user) { FactoryGirl.create(:user, email: "[email protected]") }
before { valid_signin user}
describe "when submitting a PATCH request to users#update" do
before { patch user_path(wrong_user) }
specify { expect(response).to redirect_to root_path}
end
end
和valid_signin是這樣,intially:
def valid_signin(user, options = {})
visit signin_path
fill_in "Email", with: user.email
fill_in "Password", with: user.password
click_button "Sign in"
end
這些試驗不工作,當我們發出PUT請求,我們不能使用水豚做到這一點。
那麼是這樣嗎?我們不能用水豚來測試任何放置/修補請求嗎?當我們需要測試put/patch請求並且我們不能使用水豚時,我們應該做些什麼?
是的,我很困惑,因爲在railstutorial中,這是在集成測試中完成的。 – falloutx
嗨,我剛纔讀了你的答案,但在這種情況下,不能理解水豚和valid_signin之間的關係!爲什麼valid_signin不起作用?它在「補丁」之前被調用? – medBo
@medBo,問題不是'valid_signin',而是'patch user_path(wrong_user)'。你不能在水豚中使用PATCH,GET,POST等。 –