Hi there,

I'm striking a wee problem - and haven't been able to figure it out.  In my
before statement I'm setting up a mock video.  I'd like one of my examples
to check that original= and save! are being called on the mock video, so I
have an example that looks like this:

      it "should update the original video and save the video" do
        post :upload_video, :video_id => 'hi', :Filedata => @video_file
        @vid.should_receive(:original=)
        @vid.should_receive(:save!)
      end

This fails saying that @vid didn't receive original=.  However, if I move
the two should's up into the before block, then the example passes.  I
thought @vid might be getting reassigned somewhere before the example code
is run, but I can't spot it.  (@video is used in the action - not @vid).
Can anyone spot something obvious I'm doing wrong here?  I'm happy for any
other feedback on this too - it's pretty ugly.  Here's the whole before
block with the should's included in a location that let the example(s) pass:

      before(:each) do
        @video_file =  ActionController::TestUploadedFile.new(RAILS_ROOT +
"/spec/fixtures/files/video.mpg",  'video/mp4')

        @thumb = "thumb"
        @thumb.stub!(:url).and_return("the_thumb_url")

        @original = "original"
        @original.stub!(:path)

        @vid = mock_video(:original_thumbnail => @thumb, :convert_path =>
"convert_path", :still_path => "still_path", :original => @original)
        # @vid.stub!(:original=)
        # @vid.stub!(:save!)


        @videos = []
        @videos.stub!(:find).and_return(@vid)
        @current_user = mock_model(User, :id => 1, :videos => @videos)
        controller.stub!(:current_user).and_return(@current_user)

        @vid.should_receive(:original=)
        @vid.should_receive(:save!)
      end


I'm betting it's something really obvious somewhere.  ;-)

Cheers,

Tim.
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to