单元测试(Rspec)无法在Rails

时间:2018-01-23 13:05:08

标签: ruby-on-rails ruby unit-testing rspec

我有这种类型的单元测试 -

describe "#test_feature" do
  it "should test this feature" do
    sign_in @group_user
    get :get_users, {name: "darpan"}
    expect(@group_user.user_detail.name).to eq("darpan")
    sign_out @group_user
  end
end

和函数get_users就是这样 -

def get_users
  quick_start = current_user.user_detail.quick_start
  current_user.user_detail.update_attribute(:name, "darpan")
  render :json => :ok
end

现在,当我跑到rspec以上时, current_user user_detail已更新(使用binding.pry进行了检查),但登录的用户@group_user user_detail未更新。因此我的expect失败了。

我在测试此功能时出了什么问题?

1 个答案:

答案 0 :(得分:5)

您可能需要在RSpec中重新加载资源才能看到更改:

describe "#test_feature" do
  it "should test this feature" do
    sign_in @group_user
    get :get_users, {name: "darpan"}
    @group_user.reload   # Reloads information from the database
    expect(@group_user.user_detail.name).to eq("darpan")
    sign_out @group_user
  end
end