相关疑难解决方法(0)

Rails,Devise,Rspec:未定义的方法'sign_in'

我正在尝试在Rails中编写Rspec测试,使用Devise帮助方法进行登录和注销.sign_in方法无效.但是,在对应用程序进行一系列更改之前,它已经提前工作了.

我尝试过的事情:

  • 我在Rspec.configure中包含了测试助手.
  • 使用Warden的login_as
  • 清除Rails缓存.
  • 摆脱Capybara,看看是否导致问题
  • 我没有在我的控制器规范中明确设置会话(例如没有valid_session)

到目前为止,没有骰子.使用已登录用户测试控制器需要做些什么?

错误信息:

 OrderItemsController GET #index renders the :index view
 Failure/Error: sign_in :admin
 NoMethodError:
      undefined method `sign_in' for #  <RSpec::ExampleGroups::OrderItemsController_2::GETIndex:0x00000102c002d0>
 # ./spec/controllers/order_items_controller_spec.rb:6:in `block (2 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

控制器规格

require 'spec_helper'

describe OrderItemsController do
    before (:each) do
        admin = create(:admin)
        sign_in :admin
    end

    describe "GET #index" do
        it "renders the :index view" do
            get :index
            expect( response ).to render_template :index
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

spec_helper.rb

require 'rspec/rails'
require 'capybara/rspec'

RSpec.configure do |config|

  config.include ApplicationHelper
  config.include …
Run Code Online (Sandbox Code Playgroud)

rspec devise ruby-on-rails-4

30
推荐指数
5
解决办法
2万
查看次数

标签 统计

devise ×1

rspec ×1

ruby-on-rails-4 ×1