On Sat, Dec 4, 2010 at 8:34 AM, Martin Hawkins <martin.hawk...@gmail.com> wrote:
> I can't believe I did that...
> No, there is only one Factory; copy and paste error. The SeasonDate
> class is:
> class SeasonDate < ActiveRecord::Base
>  def self.find_start_record
>    where(["date_type = ?", "start_date"]).first

I think the problem is "start_date" vs "season_start". The factory says:

Factory.define :season_date do |f|
 f.season_date Date.new(2011,9,24)
 f.date_type "season_start"
end

date_type == "start_date" # in the implementation
date_type == "season_start" # in the factory

HTH,
David

>  end
> end
> Agreed regarding the redundant test - I just put that in when things
> went wrong.
> Thanks for responding
>
> On Dec 4, 2:25 am, David Chelimsky <dchelim...@gmail.com> wrote:
>> On Dec 3, 2010, at 11:07 AM, Martin Hawkins wrote:
>>
>>
>>
>>
>>
>> > Ruby 1.9.2, Rails 3.0.3, Rspec-rails 2.2.0
>>
>> > I have:
>>
>> > Factory.define :season_date do |f|
>> >  f.season_date Date.new(2011,9,24)
>> >  f.date_type "season_start"
>> > end
>>
>> > RSpec.configure do |config|
>> >  config.mock_with :rspec
>> > end
>>
>> > Factory.define :season_date do |f|
>> >  f.season_date Date.new(2011,9,24)
>> >  f.date_type "season_start"
>> > end
>>
>> > Factory.define :season_date do |f|
>> >  f.season_date Date.new(2011,9,24)
>> >  f.date_type "season_start"
>> > end
>>
>> Do you actually have 3 identical factories or was that just a copy/paste 
>> error?
>>
>> > require 'spec_helper'
>> > describe SeasonDate do
>> >  before(:each) do
>> >   �...@start_date_record = Factory.create(:season_date)
>> >   �...@no_play_date_record = Factory.create(:season_date, season_date: 
>> > Date.today, date_type: "no_play")
>> >  end
>> >  it "responds to the find_start_record method call" do
>> >    SeasonDate.should respond_to(:find_start_record)
>> >  end
>> >  it "returns the record with the season start date" do
>> >    SeasonDate.find_start_record.should == @start_date_record
>>
>> The fact that this example ^^ sends SeasonDate the find_start_record message 
>> makes the previous example unnecessary.
>>
>>
>>
>>
>>
>> >  end
>> > end
>>
>> > and I get
>>
>> > rspec -f d -b spec/models/season_date_spec.rb
>> > SeasonDate
>> >  responds to the find_start_record method call
>> >  returns the record with the season start date (FAILED - 1)
>>
>> > Failures:
>>
>> >  1) SeasonDate returns the record with the season start date
>> >     Failure/Error: SeasonDate.find_start_record.should ==
>> > @start_date_record
>> >     expected: #<SeasonDate id: 66, season_date: "2011-09-24",
>> > date_type: "season_start", created_at: "2010-12-03 17:03:58",
>> > updated_at: "2010-12-03 17:03:58">,
>> >          got: nil (using ==)
>>
>> > I'm doing something dumb, but I don't know what. Any assistance much
>> > appreciated!
>>
>> Can't really tell from what you've posted. Please post the implementation of 
>> SeasonDate.season_date.
>> _______________________________________________
>> rspec-users mailing list
>> rspec-us...@rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users
> _______________________________________________
> rspec-users mailing list
> rspec-users@rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to