質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

2374閲覧

Rail Tutorialにて、Factory Girlが見つかりません

yamady

総合スコア176

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

2クリップ

投稿2015/07/28 06:32

編集2015/07/30 05:22

いつも大変お世話になっております。

現在、Ruby on Railsに挑戦しているのですが、
下記の3エラーが解決せずに困っています。

Failures:

  1. User pages profile page
    Failure/Error: let(:user) { FactoryGirl.create(:user) }
    ArgumentError:
    Factory not registered: user

    ./spec/requests/user_pages_spec.rb:8:in `block (3 levels) in <top (required)>'

    ./spec/requests/user_pages_spec.rb:9:in `block (3 levels) in <top (required)>'

  2. User pages profile page
    Failure/Error: let(:user) { FactoryGirl.create(:user) }
    ArgumentError:
    Factory not registered: user

    ./spec/requests/user_pages_spec.rb:8:in `block (3 levels) in <top (required)>'

    ./spec/requests/user_pages_spec.rb:9:in `block (3 levels) in <top (required)>'

上記につきまして、Factory not registeredということでFactoryがないという意味だとは
思うのですが、gem 'factory_girl_rails', '4.2.1'がgemfileできちんとインストールはできていますし
factories.rbもspecフォルダ内に格納されています。
何が問題なのでしょうか。 ご教示くださいませ。

user_pages_spec.rb

Ruby

1require 'spec_helper' 2 3describe "User pages" do 4 5 subject { page } 6 7 describe "profile page" do 8 let(:user) { FactoryGirl.create(:user) } 9 before { visit user_path(user) } 10 11 it { should have_content(user.name) } 12 it { should have_title(user.name) } 13 end 14 15 describe "signup page" do 16 before { visit signup_path } 17 18 it { should have_content('Sign up') } 19 it { should have_title(full_title('Sign up')) } 20 end 21 22 describe "sign up" do 23 24 before { visit signup_path } 25 26 let(:submit) { "Create my account" } 27 28 describe "with invalid information" do 29 it "should not create a user" do 30 expect { click_button submit }.not_to change(User, :count) 31 end 32 end 33 34 describe "with valid information" do 35 before do 36 fill_in "Name", with: "Example User" 37 fill_in "Email", with: "user@example.com" 38 fill_in "Password", with: "foobar" 39 fill_in "Confirmation", with: "foobar" 40 end 41 42 it "should create a user" do 43 expect { click_button submit }.to change(User, :count).by(1) 44 end 45 end 46 end 47end

factories.rb

Ruby

1FactoryGirl.define do 2 factory :user do 3 name "Michael Hartl" 4 email "michael@example.com" 5 password "foobar" 6 password_confirmation "foobar" 7 end 8end
  1. User pages sign up with valid information should create a user
    Failure/Error: fill_in "Email", with: "user@example.com"
    Capybara::ElementNotFound:
    Unable to find field "Email"

    ./spec/requests/user_pages_spec.rb:37:in `block (4 levels) in <top (required)>'

上記につきましても、CapybaraにEmail Elementが見つからないと表示されてしまい
何を代用するべきなのかに窮しています。

申し訳ありませんが、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

spec/spec_helper.rbに以下を追記すると直ったという情報がありますが・・・

Ruby

1config.before(:all) do 2 FactoryGirl.factories.clear 3 FactoryGirl.sequences.clear 4 FactoryGirl.find_definitions 5end

自分はRspec使ってないので、情報まで。

投稿2015/07/30 10:03

rifuch

総合スコア1901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamady

2015/07/31 07:53

rifuch様 ご回答いただきまして、ありがとうございます。 別のエラーが出てしまいましたが、 頑張ってトライします!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問