It Should Include Only One Of – An RSpec Matcher

I know RSpec tests should typically be implementation/data agnostic, but I ran into a situation in a unit test where I needed to make sure that the results of a query returned only one of the two records that were created during the setup but without knowing which record that would be ahead of time. This was due to the fact that the scoped finder returned a random record. So, I wrote a little matcher that lets me assert that a given array contains only one of a set of specified elements.

[gist id=1021142 file=include_only_one_of.rb]

You can use it like so:

[gist id=1021142 file=example_spec.rb]

There is something to be learned from a rainstorm.
When meeting with a sudden shower, you try
not to get wet and run quickly along the road.
By doing such things as passing under the eaves
of houses, you still get wet. When you are
resolved from the beginning, you will not be
perplexed, though you will still get the same
soaking. This understanding extends to all things.

— Yamamoto Tsunetomo, Hagakure: The Book of the Samauri