Dre*_*rew 6 ruby rspec ruby-on-rails rails-engines
一直在将Rails引擎升级到Rails 5.1并且现在正在使rspec测试恢复工作的过程中.
我有一个控制器,在那个控制器中我有以下内容:
module Users
class SessionsController < Devise::SessionsController
skip_before_action :authenticate_user!
skip_before_action :authorize_user!
def create
super
flash[:analytics] = { "data-analytics-form-completed-name" => "#{StewardshipUser.app_slug}/sign-in", "data-analytics-form-completed-type" => "login" }
end
def repopulate_email
(params[:user] && params[:user][:email]) ? params[:user][:email] : ''
end
helper_method :repopulate_email
end
end
Run Code Online (Sandbox Code Playgroud)
如果我删除skip_before_action :authorize_user!
测试运行,但不是所有成功.
有了这条线,我收到以下错误:
An error occurred while loading ./spec/validators/rfc_compliant_validator_spec.rb.
Failure/Error: Dummy::Application.initialize!
RuntimeError:
can't modify frozen Array
# /Users/ahcarpenter/.rvm/gems/ruby-2.2.2/gems/railties-5.1.4/lib/rails/engine.rb:579:in `unshift'
# /Users/ahcarpenter/.rvm/gems/ruby-2.2.2/gems/railties-5.1.4/lib/rails/engine.rb:579:in `block in <class:Engine>'
Run Code Online (Sandbox Code Playgroud)
有关为什么初始化程序会在那里打破那条线的任何想法?
另外,当我最初重新初始化rspec时,我不得不注释掉该方法以使初始化程序运行,因为由于某种原因它不再被发现(我似乎没有碰到任何包含该类型的宝石版本)方法,但也许如此)
我确信您现在已经解决了这个问题,但是我遇到了这个错误,我意识到我的测试数据库没有正确初始化。我通过运行以下命令修复了该错误:
rails db:migrate RAILS_ENV=test
Run Code Online (Sandbox Code Playgroud)
我希望这对任何偶然发现这篇文章的人都有帮助。
归档时间: |
|
查看次数: |
1032 次 |
最近记录: |