{"id":752,"date":"2022-08-30T15:06:35","date_gmt":"2022-08-30T15:06:35","guid":{"rendered":"https:\/\/unknownerror.org\/index.php\/2013\/11\/09\/rails-3-1-rc6-factorygirl-devise-spec2-undefined-method-factory-for-rspeccoreexamplegroup-collection-of-common-programming-errors\/"},"modified":"2022-08-30T15:06:35","modified_gmt":"2022-08-30T15:06:35","slug":"rails-3-1-rc6-factorygirl-devise-spec2-undefined-method-factory-for-rspeccoreexamplegroup-collection-of-common-programming-errors","status":"publish","type":"post","link":"https:\/\/unknownerror.org\/index.php\/2022\/08\/30\/rails-3-1-rc6-factorygirl-devise-spec2-undefined-method-factory-for-rspeccoreexamplegroup-collection-of-common-programming-errors\/","title":{"rendered":"rails 3.1.rc6 + factorygirl+ devise + spec2 =&gt; undefined method `Factory&#39; for #&lt;RSpec::Core::ExampleGroup::-Collection of common programming errors"},"content":{"rendered":"<p>my gem file looks like<\/p>\n<pre><code>source 'http:\/\/rubygems.org'\ngem 'rails', '3.1.0.rc6'\ngem 'sqlite3'\ngem 'devise'\ngem 'will_paginate'\ngem 'therubyracer'\ngroup :assets do\n  gem 'sass-rails', \"  ~&gt; 3.1.0.rc\"\n  gem 'coffee-rails', \"~&gt; 3.1.0.rc\"\n  gem 'uglifier'\nend\ngem 'jquery-rails'\n\ngroup :test do\n  gem 'turn', :require =&gt; false\n  gem 'rspec-rails'\n  gem 'webrat'\nend\n\ngroup :development do\ngem 'rspec-rails'\ngem 'webrat'\ngem 'spork'\ngem 'factory_girl_rails'\ngem 'capybara'\ngem 'guard-rspec'\nend\n<\/code><\/pre>\n<p>my factories.rb<\/p>\n<pre><code>Factory.define :user do |user|\n  user.username              \"ccc\"\n  user.email                 \"ccc@eg.com\"\n  user.password              \"foobar\"\n  user.password_confirmation \"foobar\"\nend\n\nFactory.define :user_hero do |hero|  \n  hero.supername        \"superman\"\n  hero.association :user\nend\n<\/code><\/pre>\n<p>my hero_controller_spec looks like this<\/p>\n<pre><code>require 'spec_helper'\n\ndescribe HerosController do\n  include Devise::TestHelpers\n  render_views\n\n  before(:each) do\n    @user       = Factory(:user)\n    # @request.env[\"devise.mapping\"] = :user\n    # @user = Factory.create(:user)\n    sign_in @user\n    @hero_attr   = {\n      :supername        =&gt; \"superman\",\n    }\n  end\n\n  it \"should create a new instance with valid attributes\" do\n    @user.heros.create!(@hero_attr)\n  end\n\nend\n<\/code><\/pre>\n<p>My autotest or guard shows up the following message<\/p>\n<pre><code>Failures:\n\n  1) HerosController should create a new instance with valid attributes\n     Failure\/Error: @user       = Factory(:user)\n     NoMethodError:\n       undefined method `Factory' for #\n     # .\/spec\/controllers\/heros_controller_spec.rb:8:in `block (2 levels) in '\n\nFinished in 0.00726 seconds\n1 example, 1 failure\n\nFailed examples:\n\nrspec .\/spec\/controllers\/heros_controller_spec.rb:33 # HerosController should create a new instance with valid attributes\n<\/code><\/pre>\n<ol>\n<li>\n<p>in spec_helper.rb<\/p>\n<p>add the following<\/p>\n<pre><code>require 'factory_girl'\nload 'factories.rb'\n<\/code><\/pre>\n<\/li>\n<li>\n<p>Try this:<\/p>\n<pre><code>@user.HerosController.create!(@hero_attr) \n<\/code><\/pre>\n<p>in place of:<\/p>\n<pre><code>@user.create!(@hero_attr)\n<\/code><\/pre>\n<\/li>\n<li>\n<p>Factory Girl needs to be in the test group otherwise it never gets loaded when you run your specs. Currently it&#8217;s loaded only in your development group.<\/p>\n<\/li>\n<\/ol>\n<p id=\"rop\"><small>Originally posted 2013-11-09 22:38:22. <\/small><\/p>","protected":false},"excerpt":{"rendered":"<p>my gem file looks like source &#8216;http:\/\/rubygems.org&#8217; gem &#8216;rails&#8217;, &#8216;3.1.0.rc6&#8217; gem &#8216;sqlite3&#8217; gem &#8216;devise&#8217; gem &#8216;will_paginate&#8217; gem &#8216;therubyracer&#8217; group :assets do gem &#8216;sass-rails&#8217;, &#8221; ~&gt; 3.1.0.rc&#8221; gem &#8216;coffee-rails&#8217;, &#8220;~&gt; 3.1.0.rc&#8221; gem &#8216;uglifier&#8217; end gem &#8216;jquery-rails&#8217; group :test do gem &#8216;turn&#8217;, :require =&gt; false gem &#8216;rspec-rails&#8217; gem &#8216;webrat&#8217; end group :development do gem &#8216;rspec-rails&#8217; gem &#8216;webrat&#8217; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,1],"tags":[],"class_list":["post-752","post","type-post","status-publish","format-standard","hentry","category-capybara","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/752","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/comments?post=752"}],"version-history":[{"count":1,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/752\/revisions"}],"predecessor-version":[{"id":8758,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/752\/revisions\/8758"}],"wp:attachment":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/media?parent=752"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/categories?post=752"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/tags?post=752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}