2013-03-05 104 views
0

我看了其他主題,做了一個谷歌搜索,沒有任何解決方案不幸工作。我剛開始編寫我的第一個密碼重置測試。對於沒有標題或文字「密碼」的鏈接,我應該收到一個水豚元素未發現的錯誤。相反,工廠女孩說它不是註冊用戶。工廠女孩沒有註冊用戶

1) PasswordResets emails user when requesting password reset 
    Failure/Error: user = FactoryGirl.create(:user) 
    ArgumentError: 
     Factory not registered: user 
    # ./spec/requests/password_resets_spec.rb:5:in `block (2 levels) in <top (required)>' 

這裏是我的password_reset_spec.rb:

require 'spec_helper' 

describe "PasswordResets" do 
    it "emails user when requesting password reset" 
    user = FactoryGirl.create(:user) 
    visit login_path 
    click_link "password" 
    fill_in "Email", :with => user.email 
    click_button "Reset Password" 
    end 

factories.rb:

FactoryGirl.define do 
    factory :user do 
    f.sequence :email do |n| "foo#{n}@example.com" 
    end 
    f.password "secret" 
end 
end 

的Gemfile:

gem 'rspec-rails', :group => [:test, :development] 
group :test do 
    gem 'factory_girl' 
    gem 'capybara' 
    gem 'guard-rspec' 
    gem 'rb-fsevent' 
end 

回答

0

你的語法是在你的工廠聲明不正確,我會像這樣的東西:

FactoryGirl.define do 
    factory :user do 
    sequence(:email) { |n| "foo#{n}@example.com" } 
    password "secret" 
    end 
end 
+0

我仍然收到相同的錯誤:Rack :: File headers參數替換Rack 1.5後的cache_control。 /Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/factory_girl-4.2.0/lib/factory_girl/registry.rb:24:in'find':Factory not registered:user(ArgumentError) – pwz2000 2013-03-05 15:44:04

+0

嘗試在'Gemfile'中用'gem'factory_girl_rails''替換'gem'factory_girl'' – siekfried 2013-03-05 15:53:12

+0

我在發佈之前更改了此處。它產生了一個不同的錯誤,「Mysql2 :: Error:Table'dating_test.users'不存在:顯示從用戶'(ActiveRecord :: StatementInvalid)的完整域」 – pwz2000 2013-03-05 16:01:11