我正在尝试更新请求规范中的记录,但它没有更新。在现实生活中做到这一点。这是规范:
describe "sessions" do
before do
@user = FactoryGirl.create(:user)
@api_key = FactoryGirl.create(:api_key)
end
it "is updated properly" do
put "/api/v1/users/#{@user.id}?user_email=#{@user.email}&auth_token=#{@user.authentication_token}", {user: {name: "New Name"}},{ "HTTP_AUTHORIZATION"=>"Token token=\"#{@api_key.access_token}\"" }
@user.name.should eq("New Name")
response.status.should be(201)
end
end
上述测试失败并显示错误:
Failure/Error: @user.name.should eq("New Name")
expected: "New Name"
got: "nil"
(compared using ==)
Name是一个可选参数,所以我只是不在Factory中设置它。如果我设置了该行,例如{。}}。
并且,为了完整起见,这里是工厂:
got: "Bill"
答案 0 :(得分:1)
您需要在PUT通话后重新加载@user
,例如@user.reload
。