IZ using factories for the spec

This commit is contained in:
ilya 2010-06-15 13:18:26 -04:00
parent 3c3c194ed5
commit ee295d01ff
6 changed files with 38 additions and 21 deletions

View file

@ -16,6 +16,7 @@ group :test do
gem 'webrat' gem 'webrat'
gem 'redgreen' gem 'redgreen'
gem 'autotest' gem 'autotest'
gem 'factory_girl_rails'
end end
group :development do group :development do

View file

@ -15,6 +15,7 @@ class StatusMessage
before_create :add_owner before_create :add_owner
def self.newest(owner_email) def self.newest(owner_email)
StatusMessage.last(:conditions => {:owner => owner_email}) StatusMessage.last(:conditions => {:owner => owner_email})
end end

17
spec/factories.rb Normal file
View file

@ -0,0 +1,17 @@
#For Guidance
#http://github.com/thoughtbot/factory_girl
#http://railscasts.com/episodes/158-factories-not-fixtures
Factory.define :friend do |f|
f.username 'max'
f.url 'http://max.com/'
end
Factory.define :status_message do |m|
m.sequence(:message) {|n| "jimmy's #{n} whales"}
end
Factory.define :user do |u|
u.sequence(:email) {|n| "bob#{n}@aol.com"}
u.password "bluepin7"
end

View file

@ -2,7 +2,8 @@ require File.dirname(__FILE__) + '/../spec_helper'
describe Friend do describe Friend do
it 'should have a diaspora username and diaspora url' do it 'should have a diaspora username and diaspora url' do
n = Friend.new(:username => 'max') n = Factory.build(:friend, :url => nil)
#n = Friend.new(:username => 'max')
n.valid?.should be false n.valid?.should be false
n.url = "http://max.com/" n.url = "http://max.com/"
n.valid?.should be true n.valid?.should be true

View file

@ -1,38 +1,34 @@
require File.dirname(__FILE__) + '/../spec_helper' require File.dirname(__FILE__) + '/../spec_helper'
describe StatusMessage do describe StatusMessage do
before do
@usr = Factory.create(:user,:email => "bob@aol.com", :password => "diggity")
end
it "should have a message" do it "should have a message" do
n = StatusMessage.new n = Factory.build(:status_message, :message => nil)
n.valid?.should be false n.valid?.should be false
n.message = "wales" n.message = "wales"
n.valid?.should be true n.valid?.should be true
end end
it "should add an owner if none is present" do it "should add an owner if none is present" do
User.create(:email => "bob@aol.com", :password => "big bux") n = Factory.create(:status_message)
n = StatusMessage.create(:message => "puppies!")
n.owner.should == "bob@aol.com" n.owner.should == "bob@aol.com"
end end
describe "newest" do describe "newest" do
before do before do
User.create(:email => "bob@aol.com", :password => "diggity") (1..5).each { Factory.create(:status_message, :owner => "some@dudes.com") }
StatusMessage.create(:message => "wale for jimmy", :owner => "xzibit@dawgz.com") (6..10).each { Factory.create(:status_message) }
StatusMessage.create(:message => "jimmy wales")
StatusMessage.create(:message => "jimmy your wales", :owner => "some@dudes.com")
StatusMessage.create(:message => "lions", :owner => "xzibit@dawgz.com")
StatusMessage.create(:message => "bears")
StatusMessage.create(:message => "sharks", :owner => "some@dudes.com")
StatusMessage.create(:message => "roar")
end end
it "should give the most recent message from owner" do it "should give the most recent message from owner" do
StatusMessage.my_newest.message.should == "roar" #puts StatusMessage.newest("sam@cool.com")
StatusMessage.my_newest.message.should == "jimmy's 11 whales"
end end
it "should give the most recent message for a given email" do it "should give the most recent message for a given email" do
StatusMessage.newest("some@dudes.com").message.should == "sharks" StatusMessage.newest("some@dudes.com").message.should == "jimmy's 16 whales"
end end
end end
@ -42,7 +38,7 @@ describe StatusMessage do
end end
it 'should serialize to XML' do it 'should serialize to XML' do
message = StatusMessage.create(:message => "I hate WALRUSES!", :owner => "Bob") message = Factory.create(:status_message, :message => "I hate WALRUSES!", :owner => "Bob")
message.to_xml.to_s.should == @xml message.to_xml.to_s.should == @xml
end end

View file

@ -3,6 +3,7 @@
ENV["RAILS_ENV"] ||= 'test' ENV["RAILS_ENV"] ||= 'test'
require File.dirname(__FILE__) + "/../config/environment" unless defined?(Rails) require File.dirname(__FILE__) + "/../config/environment" unless defined?(Rails)
require 'rspec/rails' require 'rspec/rails'
#require File.dirname(__FILE__) + "/factories"
include Devise::TestHelpers include Devise::TestHelpers
# Requires supporting files with custom matchers and macros, etc, # Requires supporting files with custom matchers and macros, etc,