Ruby on rails 在Rspec isn'中更新;t正在工作,尽管状态为200
我正在尝试更新Rspec中的用户:Ruby on rails 在Rspec isn'中更新;t正在工作,尽管状态为200,ruby-on-rails,ruby,rspec,ruby-on-rails-5,Ruby On Rails,Ruby,Rspec,Ruby On Rails 5,我正在尝试更新Rspec中的用户: require "rails_helper" RSpec.describe UsersController, type: :controller do describe "PUT #update" do it 'should update a user' do attr1 = { .............. } u1 = User.create!(attr1) put :update, { id:
require "rails_helper"
RSpec.describe UsersController, type: :controller do
describe "PUT #update" do
it 'should update a user' do
attr1 = { .............. }
u1 = User.create!(attr1)
put :update, { id: u1.to_param, user: attr1.merge({name: "name2", email: "email2@mail.com"}) }, format: :json
u1.reload
expect(response.status).to eq(200)
expect(u1.name).to eq("name2")
状态为200,但在正文中返回的属性没有更新。我不知道attr上的属性是什么,但请尝试以下操作:
describe "PUT #update" do
let(:option) { assigns(:option) }
before(:each) do
attr1 = { .............. }
u1 = create(:user, attr1....)
put :update, params: {
user: attributes_for(:user, name: "name2", email: "email2@mail.com"),
id: u1.id
}
end
it "should be success" do
expect(response.status).to eq(200)
end
it "should update attributes" do
expect(u1.name).to "name2"
end
end
你的日志怎么说<控制器返回200的code>log/test.log不会告诉您任何信息。您可以有一个控制器,它完全不执行任何操作,但仍然返回200。请包括测试中的实际代码。当然是您的控制器。@max与此处相同,但需要更新当要求补充信息时,请将其添加到问题本身。不要指望人们愿意帮助你四处挖掘,也不要让我们猜测。。。