« Return to Thread: checking associated objects have been deleted

Re: checking associated objects have been deleted

by David Chelimsky-2 :: Rate this Message:

Reply to Author | View in Thread

On 6/7/07, David Chelimsky <dchelimsky@...> wrote:

> On 6/7/07, David Green <pocketsized@...> wrote:
> > I have the following model:
> >
> > class Book < ActiveRecord::Base
> >   has_many :taggings, :dependent => :delete_all
> >   has_many :tags, :through => :taggings
> > end
> >
> > is it possible to check that associated taggings are being destroyed
> > using mocks? I don't want to test that rails is deleting the
> > associations, I want to test that I have specified the association as
> > a dependent one.
> >
> > the only way I can think of is to use fixtures (or create real
> > associations in the before callback) and then check that they have
> > been deleted using Taggings.count(). Can it be done using mocks
> > instead?
> >
> > describe Book do
> >
> >   before do
> >     @book = mock_model(Book)
> >     @tagging = mock_model(Tagging)
> >     @book.stub!(:taggings).and_return([@tagging, @tagging])
> >   end
> >
> >   it "should delete associated taggings when destroyed" do
> >   end
> >
> > end
>
> You have to create a real book, but you can create a mock tagging:

Actually, you don't have to save it - you can use #new instead of create:

book = Book.new(:title => "the book")
book.taggings << tagging = mock_model(Tagging, :[]= => true, :save => true)
tagging.should_receive(:destroy)
book.destroy

>
> Cheers,
> David
>
>
>
> >
> > thanks
> > dave
> > _______________________________________________
> > rspec-users mailing list
> > rspec-users@...
> > http://rubyforge.org/mailman/listinfo/rspec-users
> >
>
_______________________________________________
rspec-users mailing list
rspec-users@...
http://rubyforge.org/mailman/listinfo/rspec-users

 « Return to Thread: checking associated objects have been deleted