[rspec-users] more verbosity for be_an?
rick.denatale at gmail.com
Sat Jan 2 17:50:02 EST 2010
On Sat, Jan 2, 2010 at 4:35 PM, David Chelimsky <dchelimsky at gmail.com> wrote:
> On Sat, Jan 2, 2010 at 3:23 PM, Andrew Premdas <apremdas at gmail.com> wrote:
>> 2009/12/30 rogerdpack <rogerpack2005 at gmail.com>
>>> > What about something like:
>>> > expected #<Class:2158174640> => Fixnum to be a kind of Fixnum
>>> > That is more aligned with other failure messages. WDYT?
>>> I quite like it.
>>> In this instance it was
>>> 3.class.should be_a Fixnum # fails
>>> I suppose it would be something like
>>> expected #<Class:Fixnum> => Class to be a kind of Fixnum
>>> > And just out of curiosity, Roger, what's your use case? I can't
>>> > remember ever using be_a/be_an, at least not in any code that has survived.
>>> The very first test I thought up was "this method should return an
>>> integer" so kind of a basic test for a not yet existent method.
>> Isn't this a bit anti-ruby though. Surely the things we should be testing
>> is that the object exists, responds to certain messages and gives certain
>> values back for those messages. Thinking about types is so Java, C++ :-)
> Generally speaking, you're correct, but there are cases where this is
> valuable - like if you're spec'ing a factory in a lib for others to use,
However, I need to point out that
1.should be_a Fixnum
1.class.should_not be_a Fixnum
1.class == Fixnum which is after all a Class, and not a Fixnum itself.
More information about the rspec-users