Rspec测试未达到控制器更新

时间:2019-06-04 20:44:33

标签: ruby-on-rails rspec

我正在尝试编写一个简单的测试来验证对Employee的更新,而在实践中,我还是想编写该测试。

RSpec.describe EmployeesController, type: :controller do

    before(:each) do
      admin_user = FactoryBot.create(
        :user,
        user_type: 1,
        email: "admin@admin.com",
        password: "oeifhoi2345tf",
        password_confirmation: "oeifhoi2345tf"
      )
      login_as(admin_user)

      @employee = create(:employee)
    end

    it 'expects employee values to update following update' do
        p @employee
        put :update, params: { 
            id: @employee[:id], 
            employee: { name: "New Name" }
        }
        @employee.reload
        p @employee

        expect(@employee.name).to eq("New Name")
    end
end

测试失败,并且@employee.name保持不变。我有一种更新甚至没有发生的感觉,因为我向控制器添加了打印行,但在日志中看不到它:

def update
    p "IN UPDATE"

    if @employee.update(employee_params)
        redirect_to edit_employee_path(@employee[:id])
    else
        render :edit
    end
end

put通话中是否缺少某些内容?

0 个答案:

没有答案
相关问题