在Rails控制台中既不需要“ rails_helper”也不需要“ spec_helper”

时间:2019-01-05 05:06:42

标签: ruby-on-rails ruby rspec

我试图在Rails控制台中加载RSpec。实际上,我需要它的主要原因是因为我想运行这段代码,以便可以在FactoryBot中使用“允许”语法,

FactoryBot::SyntaxRunner.class_eval do
  include RSpec::Mocks::ExampleMethods
end

所以:

  • 我使用rails c -e test
  • 打开Rails控制台
  • 我首先尝试直接运行上面的代码,并得到错误 NameError: uninitialized constant RSpec::Mocks
  • 我认为我应该首先尝试加载RSpec才能使它正常工作,所以我尝试运行require './spec/spec_helper',它使用NoMethodError: undefined method configure'为RSpec:Module`大喊大叫

作为一种解决方法,我只是在规范的任意位置放置一个byebug来获得RSpec上下文以及我需要预加载的所有内容,并使用它代替Rails控制台,但是真的没有更好的方法了实现这一目标的方法?

非常感谢您的帮助! 附言我的Gemfile中的一段代码:

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
  gem 'rspec-rails', '~> 3.7.0'
  gem 'rspec-collection_matchers'
  gem 'factory_bot_rails'
end

group :test do
  # Adds support for Capybara system testing and selenium driver
  gem 'capybara', '>= 2.15', '< 4.0'
  gem 'selenium-webdriver'
  # Easy installation and use of chromedriver to run system tests with Chrome
  gem 'chromedriver-helper'
end

完整的Gemfile是here

1 个答案:

答案 0 :(得分:0)

您可以要求test_helper作为任何ruby文件。 这应该起作用:

require_relative 'spec/spec_helper'