I am working on a Ruby on Rails tutorial and I am so close to ending, but Factory Girl does not make my life easier.
I cannot run any of the specification files calling factory.
require 'spec_helper' require 'factory_girl_rails' describe User do before(:each) do @attr = { :name => "Example User", :email => " user@example.com ", :password => "foobar", :password_confirmation => "foobar" } end it "should create a new instance given valid attributes" do User.create!(@attr) end it "should require a name" do no_name_user = User.new(@attr.merge(:name => "")) no_name_user.should_not be_valid end it "should require an email address" do no_email_user = User.new(@attr.merge(:email => "")) no_email_user.should_not be_valid end it "should reject names that are too long" do long_name = "a" * 51 long_name_user = User.new(@attr.merge(:name => long_name)) long_name_user.should_not be_valid end it "should accept valid email addresses" do addresses = %w[ user@foo.com THE_USER@foo.bar.org first.last@foo.jp ] addresses.each do |address| valid_email_user = User.new(@attr.merge(:email => address)) valid_email_user.should be_valid end end it "should reject invalid email addresses" do addresses = %w[ user@foo ,com user_at_foo.org example.user@foo. ] addresses.each do |address| invalid_email_user = User.new(@attr.merge(:email => address)) invalid_email_user.should_not be_valid end end it "should reject duplicate email addresses" do
factories.rb
#by using the symbol ':user', we get Factory Girl to simmulate the User model require 'spec_helper' FactoryGirl.define do factory :user do |user| user.name "User Name" user.email " user@ex.com " user.password "foobar" user.password_confirmation "foobar" end factory.sequence :email do |n| "person-#{n}@example.com" end factory :micropost do |micropost| micropost.content "Foo bar" micropost.association :user end end
This is the error message I get:
/Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/factory_girl-4.1.0/lib/factory_girl/syntax/default.rb:15:in `factory': wrong number of arguments (0 for 1) (ArgumentError) from /Users/samanthacabral/rails_projects/sample/spec/factories.rb:13:in `block in <top (required)>' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/factory_girl-4.1.0/lib/factory_girl/syntax/default.rb:49:in `instance_eval' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/factory_girl-4.1.0/lib/factory_girl/syntax/default.rb:49:in `run' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/factory_girl-4.1.0/lib/factory_girl/syntax/default.rb:7:in `define' from /Users/samanthacabral/rails_projects/sample/spec/factories.rb:4:in `<top (required)>' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/activesupport-3.2.8/lib/active_support/dependencies.rb:245:in `load' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/activesupport-3.2.8/lib/active_support/dependencies.rb:245:in `block in load' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/activesupport-3.2.8/lib/active_support/dependencies.rb:236:in `load_dependency' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/activesupport-3.2.8/lib/active_support/dependencies.rb:245:in `load' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/factory_girl-4.1.0/lib/factory_girl/find_definitions.rb:16:in `block in find_definitions' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/factory_girl-4.1.0/lib/factory_girl/find_definitions.rb:15:in `each' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/factory_girl-4.1.0/lib/factory_girl/find_definitions.rb:15:in `find_definitions' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/factory_girl_rails-4.1.0/lib/factory_girl_rails/railtie.rb:26:in `block in <class:Railtie>' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/activesupport-3.2.8/lib/active_support/lazy_load_hooks.rb:34:in `call' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/activesupport-3.2.8/lib/active_support/lazy_load_hooks.rb:34:in `execute_hook' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/activesupport-3.2.8/lib/active_support/lazy_load_hooks.rb:43:in `block in run_load_hooks' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/activesupport-3.2.8/lib/active_support/lazy_load_hooks.rb:42:in `each' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/activesupport-3.2.8/lib/active_support/lazy_load_hooks.rb:42:in `run_load_hooks' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/railties-3.2.8/lib/rails/application/finisher.rb:59:in `block in <module:Finisher>' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/railties-3.2.8/lib/rails/initializable.rb:30:in `instance_exec' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/railties-3.2.8/lib/rails/initializable.rb:30:in `run' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/railties-3.2.8/lib/rails/initializable.rb:55:in `block in run_initializers' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/railties-3.2.8/lib/rails/initializable.rb:54:in `each' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/railties-3.2.8/lib/rails/initializable.rb:54:in `run_initializers' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/railties-3.2.8/lib/rails/application.rb:136:in `initialize!' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/railties-3.2.8/lib/rails/railtie/configurable.rb:30:in `method_missing' from /Users/samanthacabral/rails_projects/sample/config/environment.rb:5:in `<top (required)>' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/activesupport-3.2.8/lib/active_support/dependencies.rb:251:in `require' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/activesupport-3.2.8/lib/active_support/dependencies.rb:251:in `block in require' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/activesupport-3.2.8/lib/active_support/dependencies.rb:236:in `load_dependency' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/activesupport-3.2.8/lib/active_support/dependencies.rb:251:in `require' from /Users/samanthacabral/rails_projects/sample/spec/spec_helper.rb:81:in `<top (required)>' from /Users/samanthacabral/rails_projects/sample/spec/models/user_spec.rb:12:in `require' from /Users/samanthacabral/rails_projects/sample/spec/models/user_spec.rb:12:in `<top (required)>' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `load' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `block in load_spec_files' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `map' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `load_spec_files' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:22:in `run' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:69:in `run' from /Users/samanthacabral/.rvm/gems/ ruby-1.9.3-p286@rails3tutorial /gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:8:in `block in autorun'
I also tried restarting spork and several combinations suggested here for syntax with FactoryGirl.
HELP !!!!
source share