小编Ran*_*ate的帖子

如何在 rspec 测试期间在回调中传递变量?

我有回调名称authenticate_admin_user。如果当前用户电子邮件 ID 为“adminuser@admin.com”,则返回 true

def authenticate_admin_user!
 if Current.user.blank? || Current.user.email != "adminuser@admin.com"
  redirect_to courses_path, danger: "Admin login required" 
 end 
end
Run Code Online (Sandbox Code Playgroud)

当我调用 new action 时,此回调将运行。在测试新操作时,我必须设置 Current.user 值

describe "GET /new" do
    describe "Create course with admin login"
      it "will not renders a new course page" do
        get new_course_url
        expect(response).to_not be_successful
      end
      it "will render a new course page" do
        get new_course_url
        expect(response).to be_successful
      end
  end
Run Code Online (Sandbox Code Playgroud)

如何设置Current.user的值?PS:这里 Current 是一个 ActiveSupport::Currentattributes 模型,而 user 是 Current 类中的一个属性。

testing controller rspec ruby-on-rails rspec-rails

1
推荐指数
1
解决办法
482
查看次数

标签 统计

controller ×1

rspec ×1

rspec-rails ×1

ruby-on-rails ×1

testing ×1