Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

undefined method `create' in Rails RSpec

I have installed FactoryBot and trying to use it with RSpec.

scenario 'User signs in' do
  create :user, email: '[email protected]', password: 'testpassword'
  visit '/users/sign_in'

  fill_in 'Email', with: '[email protected]'
  fill_in 'Password', with: 'testpassword'
end

and I am getting the following error.

Failure/Error: create :user, email: '[email protected]', password: 'testpassword'
 NoMethodError:
   undefined method `create' for #<RSpec::ExampleGroups::UserSignIn:0x007fe6324816b8>
like image 956
user3814030 Avatar asked Nov 20 '15 14:11

user3814030


2 Answers

We can find solution in factory_bot's documentation:

1) Create file /spec/support/factory_bot.rb:

RSpec.configure do |config|
  config.include FactoryBot::Syntax::Methods
end

2) Edit /spec/rails_helper.rb to load all files in support directory:

Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
like image 74
yesnik Avatar answered Sep 21 '22 10:09

yesnik


In my case I was missing config.include FactoryGirl::Syntax::Methods in rails_helper.rb

like image 32
Illia Kuzma Avatar answered Sep 23 '22 10:09

Illia Kuzma