[rspec-users] Expecting arbitrary method calls in a particular order
Ashley Moran
ashley.moran at patchspace.co.uk
Sun Jul 13 13:17:18 EDT 2008
On Jul 13, 2008, at 5:03 pm, Sven Fuchs wrote:
> Hey Ashley!
>
> How's things? :)
Good thanks, just sadly not spent much time using RSpec lately...
Spam me off list if you want to catch up!
> Wow, yes.
>
> This also uses the block passed to should_receive, but in a nicer
> way than my inital attemp which is a bit chatty.
>
> It'd look a bit odd when I want to specify the order for a bunch of
> methods, but actually I don't need to do that here.
>
> Again, this really should be documented. I even started digging into
> the RSpec source, but obviously lacked the creativity for this :)
I remember posting about this a long time ago. I think it was Aslak
that replied. I'd prefer a neater syntax for ordered expectations
across mocks. Not too long ago I was working on my database migration
tool that has to turn a graph of migrations into a linear sequence
before it can apply them, and obviously the order is essential. But
the specs look something like...
migration_1.should_receive(:apply) do
migration_2.should_receive(:apply) do
migration_3.should_receive(:apply) do
migration_4.should_receive(:apply) do
...
which is a bit hideous.
I'd prefer something like
migration_1.should_receive(:apply)
migration_2.should_receive(:apply).after(migration_2.receives(:apply))
...
but I guess that would complicate the implementation.
As it's a relatively uncommon thing I think probably just documenting
it is ok for now.
Ashley
--
http://www.patchspace.co.uk/
http://aviewfromafar.net/
More information about the rspec-users
mailing list