Are u stubbing Image.new and returning @image?? otherwise I think the  
error is accurately complaining that it did not receive :image= with  
the object that you have said.

Cheers
Shane

On 14/03/2008, at 12:55 PM, Oliver Barnes wrote:

> I see. I had gotten to trying the first way you suggested (haven't
> tried the second yet):
>
>      it "should assign an image to the work" do
>       @work.should_receive(:image=).with(@image)
>      end
>
> but I got the following error:
>
> should assign an image to the work
> Mock 'Work_1002' expected :image= with (#<Image:0x19e8094
> @name="Image_1001">) once, but received it 0 times
>
> though in the actual controller @work does receive it:
>
> def create
>    @work = @category.works.build(params[:work])
>    @image = Image.new(params[:image])
>    @work.image = @image
>    respond_to do |format|
>      if @image.save and @work.save
>        flash[:notice] = 'Work was successfully created.'
>        format.html { redirect_to  
> admin_category_work_path(@category,@work) }
>      else
>        format.html { render :action => "new" }
>      end
>    end
>  end
>
> I'm sure I'm missing something here...
>
>
> 2008/3/13, Pat Maddox <[EMAIL PROTECTED]>:
>> On Thu, Mar 13, 2008 at 3:54 PM, Oliver Barnes
>>
>> <[EMAIL PROTECTED]> wrote:
>>
>>> thanks pat, it's still a good primer ;)
>>>
>>> I'm getting a better handle at it, but I'm still confused as to  
>>> how to
>>> test assigment of associated objects. for instance, how do I test  
>>> this
>>> (using attachment_fu)?
>>>
>>>    @work.image = @image
>>
>>
>> You could either use an interaction-based or state-based test.
>>
>> it "should assign the work image" do
>>  @mock_work.should_receive(:image=).with(@mock_image)
>> end
>>
>> it "should assign the work image" do
>>  Work.find(3).image.should_not be_nil
>> end
>>
>> The basic idea is that you're specifying that it receives a method
>> call that you know works, or you can verify some state that should be
>> true once the action has taken place.
>>
>> hth
>>
>>
>> Pat
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users@rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
>>
>
>
> -- 
> Oliver Azevedo Barnes
> [EMAIL PROTECTED]
> +55 11 9768 0193
> http://www.linkedin.com/in/oliverbarnes
> http://workingwithrails.com/person/4704-oliver-barnes
> _______________________________________________
> rspec-users mailing list
> rspec-users@rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users

Shane Mingins
ELC Technologies (TM)
1921 State Street
Santa Barbara, CA 93101


Phone: +64 4 568 6684
Mobile: +64 21 435 586
Email:  [EMAIL PROTECTED]
AIM:     ShaneMingins
Skype: shane.mingins

(866) 863-7365 Tel - Santa Barbara Office
(866) 893-1902 Fax - Santa Barbara Office

+44 020 7504 1346 Tel - London Office
+44 020 7504 1347 Fax - London Office

http://www.elctech.com

--------------------------------------------------------------------
Privacy and Confidentiality Notice:
The information contained in this electronic mail message is intended  
for the named recipient(s) only. It may contain privileged and  
confidential information. If you are not an intended recipient, you  
must not copy, forward, distribute or take any action in reliance on  
it. If you have received this electronic mail message in error, please  
notify the sender immediately.

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

Reply via email to