Hello!
I’m writing the tests to my rails application and I’m facing some
problems
to integrate Faker with FactoryGirl.
I’ve put both in Gemfile, section development and test, as below:
- group :development, :test do # <<<< :development*
- gem ‘sqlite3’*
- gem ‘factory_girl_rails’*
- gem ‘ffaker’*
- end*
All my tests are written under test/ directory.
In test/, I’ve created a factories/ folder with my user factory, as
below:
FactoryGirl.define do
-
factory :user do*
-
first_name { Faker::Name.first_name }*
-
last_name { Faker::Name.last_name }*
-
email { Faker::Internet.email }*
-
password { Faker::Interner.password }*
-
user_type { Faker::Number.positive(from=1, to=3) }*
-
trait :empty do*
-
first_name nil*
-
last_name nil*
-
email nil*
-
password nil*
-
user_type nil*
-
end*
-
trait :no_name do*
-
first_name nil*
-
last_name nil*
-
end*
-
trait :no_email do*
-
email nil*
-
end*
-
trait :invalid_email do*
-
email "abcdef"*
-
end*
-
trait :no_password do*
-
password nil*
-
end*
-
trait :no_usertype do*
-
user_type nil*
-
end*
-
trait :invalid_usertype do*
-
user_type 50*
-
end*
-
end*
end
In my models test, I’m using FactoryGirl as usual (Example):
test “should not create a new user without email and password” do
user = build(:user, :empty)
assert_not user.save, “Created the user without email and password”
end
However, when I run the tests, I’m receiving the following error:
NameError: uninitialized constant Faker
I’ve already tried to add:
require ‘ffaker’
In both factory and model test files, but the problem persists.
Could someone please help me to figure out where the problem is?!
Thanks in advance for the support!