我有这种类型的单元测试 -
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
失败了。
我在测试此功能时出了什么问题?
答案 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