On 2008-09-25, at 14:04, David Chelimsky wrote:
On Thu, Sep 25, 2008 at 12:47 PM, Nick Hoffman <[EMAIL PROTECTED]>
wrote:
I'm calling #stub! and #should_receive on the same method within a
class,
and am finding that the method doesn't return the value given to
#stub!
216 it 'should make a map marker' do
217 mock_property = mock 'property',
218 :address => '400 Bloor Street',
219 :title => 'Some Title',
220 :latitude => 12.34,
221 :longitude => 56.78,
222 :is_a? => true
223 mock_marker = mock 'gmarker'
224
225 RentalMap.stub!(:generate_marker_contents).and_return 'Some
content'
226 GMarker.stub!(:new).and_return mock_marker
227 GMarker.should_receive(:new).with \
228 [mock_property.latitude, mock_property.longitude],
229 {:title => mock_property.title, :info_window =>
RentalMap.generate_marker_contents(mock_property)}
230
231 marker = RentalMap.make_marker(mock_property)
232 puts "marker is a [#{marker.class}]"
233 marker.should equal(mock_marker)
234 end
I want to stub GMarker#new to return the mock GMarker on line 223.
I also
want to ensure that GMarker#new is being called once with certain
arguments,
as seen on lines 227-229.
However, this spec fails, and the 'gmarker' variable is nil:
gmarker is a [NilClass]
F.
1)
NoMethodError in 'RentalMap#make_marker should make a map marker'
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.a?
./spec/models/rental_map_spec.rb:233:
If I comment out lines 227-229, the spec succeeds, and the 'marker'
variable
is the expected mock object:
marker = [Spec::Mocks::Mock]
With lines 227-229 uncommented, why is the 'gmarker' variable nil?
Do you have the latest code from git? If so this should work as
expected.
Hi David. I installed the rspec and rspec-rails plugins in my Rails
app on August 19, and haven't updated them since. Was this
functionality added after August 19?
-Nick
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users