测试更新请求规范中的记录

时间:2013-10-27 20:26:24

标签: ruby-on-rails rspec

我正在尝试更新请求规范中的记录,但它没有更新。在现实生活中做到这一点。这是规范:

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"

1 个答案:

答案 0 :(得分:1)

您需要在PUT通话后重新加载@user,例如@user.reload