Ruby on rails ActionView(rspec)中未定义的方法

Ruby on rails ActionView(rspec)中未定义的方法,ruby-on-rails,rspec,Ruby On Rails,Rspec,我的应用程序助手中有一个方法,但由于某些原因,在运行rspec测试时找不到它。以下是错误: Failure/Error: helper.chart_series(user).should =~ /y: 100/ undefined method `ab_variant' for #<ActionView::Base:0x102b12d78> # ./app/helpers/sidebar_helper.rb:17:in `chart_series' #

我的应用程序助手中有一个方法,但由于某些原因,在运行rspec测试时找不到它。以下是错误:

Failure/Error: helper.chart_series(user).should =~ /y: 100/
     undefined method `ab_variant' for #<ActionView::Base:0x102b12d78>
     # ./app/helpers/sidebar_helper.rb:17:in `chart_series'
     # ./spec/helpers/sidebar_helper_spec.rb:35
失败/错误:helper.chart\u系列(用户)。应=~/y:100/
未定义的“ab_变量”方法#
#./app/helpers/sidebar_helper.rb:17:in'chart_series'
#./spec/helpers/sidebar\u helper\u spec.rb:35

如何确保我的rspec测试可以找到ab_变体(在应用程序帮助程序中)?

默认情况下,应用程序/帮助程序中定义的帮助程序不会加载到rspec中。你必须重新创建它们

因此,创建一个文件,并将其命名为您喜欢的名称,例如“application_helper.rb”,然后将其放在spec/support中。这将自动包含在spec/spec_helper.rb中的此文件中,并在您的spec中可用:

Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}

默认情况下,应用程序/帮助程序中定义的帮助程序不会加载到rspec中。你必须重新创建它们

因此,创建一个文件,并将其命名为您喜欢的名称,例如“application_helper.rb”,然后将其放在spec/support中。这将自动包含在spec/spec_helper.rb中的此文件中,并在您的spec中可用:

Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}