On Jun 24, 2011, at 5:21 PM, ivanoats wrote: > Hi, I have been really stuck on this problem. My validation for my > model fails (like it should) when I'm testing it out in rails console, > but my rspec example fails because it validates anyway (which it > shouldn't). What am I missing here or where should I start looking? > > Thanks, > Ivan > > See below: > > ivan:~/Development/ruby/IvanEnviromanRefinery [git:master+] → bundle > exec rspec ../refinerycms-link/ > .............................F. > > Failures: > > 1) BlogPost bookmark links must have a link url if it is a link > Failure/Error: Factory.build(:post, > expected valid? to return false, got true > # /Users/ivan/Development/ruby/refinerycms-link/spec/models/ > blog_post_spec.rb:197:in `block (3 levels) in <top (required)>' > > Finished in 6.56 seconds > 31 examples, 1 failure > > Failed examples: > > rspec /Users/ivan/Development/ruby/refinerycms-link/spec/models/ > blog_post_spec.rb:196 # BlogPost bookmark links must have a link url > if it is a link > ivan:~/Development/ruby/IvanEnviromanRefinery [git:master+] → rails > console > Loading development environment (Rails 3.0.9) > ruby-1.9.2-p180 :001 > b = BlogPost.new > => #<BlogPost id: nil, title: nil, body: nil, draft: nil, > published_at: nil, created_at: nil, updated_at: nil, user_id: nil, > cached_slug: nil, custom_url: nil, link_url: nil, is_link: nil, > custom_teaser: nil> > ruby-1.9.2-p180 :002 > b.title=' 2011-06-24 8:34 ' > => " 2011-06-24 8:34 " > ruby-1.9.2-p180 :003 > b.body='goo' > => "goo" > ruby-1.9.2-p180 :004 > b.is_link = true > => true > ruby-1.9.2-p180 :005 > b.valid? > => false > ruby-1.9.2-p180 :007 > b.save > => false > ruby-1.9.2-p180 :008 > b.errors > => {:link_url=>["must have a link_url if is_link is true"]} > ruby-1.9.2-p180 :009 > > > require 'spec_helper' > Dir[File.expand_path('../../../features/support/factories/*.rb', > __FILE__)].each{|factory| require factory} > > describe BlogPost do > let(:blog_post ) { Factory :post } > > ... > > describe "bookmark links" do > it "may have a bookmark link" do > Factory.build(:post, > :title => "a link", > :body => "link text", > :is_link => true, > :link_url => "http://example.com").should be_valid > end > it "must have a link url if it is a link" do > Factory.build(:post, > :title => "a link", > :body => "link text", > :is_link => true).should_not be_valid > end > end > end
I'm guessing the factory is set up to include a link_url. If so, just set :link_url => nil in the second example. If not, I have no idea. HTH, David _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users