为什么我得到的FactoryGirl错误的参数数量错误?

问题描述:

在无轨应用程序中,FactoryGirl有奇怪的行为.错误的参数数量错误...不知道为什么.

Having strange behavior from FactoryGirl in non-rails app. getting wrong number of arguments error...don't know why.

gideon@thefonso ~/Sites/testing (master)$ rspec spec
/Users/gideon/.rvm/gems/ruby-1.9.3-p194/gems/factory_girl-4.1.0/lib/factory_girl/syntax/default.rb:6:in `define': wrong number of arguments (1 for 0) (ArgumentError)
    from /Users/gideon/Sites/testing/spec/factories.rb:1:in `<top (required)>'

这是其中涉及的文件...

Here are the files involved...

login_user_spec.rb

login_user_spec.rb

require_relative '../spec_helper'
require_relative '../lib/login_user'


describe "Existing User Log in Scenario", :type => :request do

  before :all do
    @user = FactoryGirl(:user)
  end


    xit "should allow user to select login from top nav" do 
        visit "/" 
        within("#main-header")do
            click_link 'Log In' 
        end

        page.should have_content('Log in to your account')
    end  

    it "and fill in login form" do
        visit "/login" 
        within("#login-form")do
            fill_in 'user-email', :with => @user.email
            fill_in 'user-password', :with => @user.password
        end

        #FIXME - the design crew will make this go away     
        within("#login-form") do 
            click_link '#login-link' #this gives false failing test...geek query...why?
        end

        page.should have_content('Manage courses')
    end
end 

Factories.rb

Factories.rb

FactoryGirl.define :user do |u|
    u.email     "joe@website.com"
    u.password  "joe009"
end

user.rb

  class User
    attr_accessor :email, :password
  end

spec_helper.rb

spec_helper.rb

require 'rubygems'
require 'bundler/setup'
require 'capybara'
require 'rspec'
require 'capybara/rspec'
require 'json'

require 'capybara/dsl'
# Capybara configuration
Capybara.default_driver = :selenium
Capybara.app_host = "http://www.website.com"

require 'factory_girl'
# give me ma stuff
FactoryGirl.find_definitions

require "rspec/expectations"

include Capybara::DSL
include RSpec::Matchers

ANSWER::user是保留字,已将其更改为:stuff ...现在可以正常工作.

ANSWER: :user is a reserved word..changed it to :stuff...works fine now.