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等。 –