[rspec-users] spec-ing a nested object is saved on the specs of the object it is nested into

Joaquin Rivera Padron joahking at gmail.com
Fri Mar 12 07:45:42 EST 2010

hi there,
I have a Rails model A, that has_one model B, model A have a method called
save_nested_b that:
* context 'invalid B params'
 ** context 'no nested B exists' => do nothing
 ** context 'nested B exists' => remove it

* context 'valid B params'
 ** context 'no nested B exists' => create it
 ** context 'nested B exists' => remove it and create new one (or edit
attributes linking to A)

the save_nested_b method implementation should not be problematic. My
question is:

on A specs I want to make sure all above on the list happens but not having
to repeat all B validations on making 'invalid B params' examples, because B
have its own specs, and also the A specs for save_nested_b will be brittle
when B validations change (not to mention the combinations of invalid fields
can be long)

how would you do this? would you do a loose thing like:

context 'invalid B params' do
a.save_nested_b nil
a.should have_no_b

giving it a more thought after writing this email I guess I would go for
this approach, what do you think?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20100312/012c16eb/attachment.html>

More information about the rspec-users mailing list