我在我的控制器规范中定义了这个代码块:
describe "DELETE #destroy" do
before(:each) do
@user = FactoryGirl.create :user
sign_in @user, store: false
delete :destroy, id: @user.auth_token
end
it { should respond_with 204 }
end
当我运行测试时,收到错误undefined method 'to_key' for {:store=>false}:Hash
。
这是相关的控制器方法:
def destroy
user = User.find_by(auth_token: params[:id])
user.generate_authentication_token!
user.save
head 204
end
由于错误,测试失败。
答案 0 :(得分:1)
在测试中,您使用的不是控制器中的助手。您使用的是TestHelpers,此处引自documentation:
通过将其密钥存储在会话中来签名给定资源。 此方法绕过任何warden身份验证回调。
示例:
sign_in:user,@ user#sign_in(范围,资源)
sign_in @user#sign_in(资源)
因此,您无法将哈希值传递给此帮助程序。