将参数传递给更新操作 rspec rails 测试

passing params to update action rspec rails tests

以这种方式传递参数returns与更新前相同的信息。

it "PUT Update updates client" do 
    client = FactoryGirl.create(:client)
    put :update, :id => client, :client => { :name => "Rostyk", :email => "new@email.com" }
    expect(client.email).to eq("new@email.com")
    expect(client.name).to eq("Rostyk")
end

:id => client 应该是 :id => client.id

也许您需要重新加载对象客户端才能看到更新:

client.reload
expect(client.email).to eq("new@email.com")
expect(client.name).to eq("Rostyk")