David Chelimsky wrote:
> On Wed, Apr 22, 2009 at 2:09 PM, James Byrne <[email protected]>
> wrote:
>>>> � � � (Spec::Expectations::ExpectationNotMetError)
>> Rates</title>"
>> WDYT?
> I like the idea, though I think it's helpful to also have the strings
> in the case of String objects. But having the class and object id
> would really help tell the story we're looking for.
>
> wdYt?
After I posted I reconsidered the situation. When equal? is the
comparison then the first step should be to check for identical objects
(duhh). If that fails then do a supplementary == check. If that passes
then append the ", did you mean '==' notice and display the values
together with the object.metaclass. Otherwise, just display the objects
are different warning and the object.metaclass for each.
However, on reconsideration again, it seems best to skip the second
check and just display this sort of thing for all equal? failures:
expected: "#<Class:#<String:0x2b6950315300>> => '<title>Bank of
Canada: Noon Foreign Exchange Rates</title>'"
got: "#<Class:#<String:0x2b695026e898>> => '<title>Bank of
Canada: Noon Foreign Exchange Rates</title>'"
(equal?: expected object is not the object returned, did you mean
'==')
(Spec::Expectations::ExpectationNotMetError)
Of course, to support this outside Rails, RSpec will have to provide and
require the metaclass.rb (shamelessly stolen from Rails).
unless Object.respond_to? :metaclass do
class Object
# Get object's meta (ghost, eigenclass, singleton) class
def metaclass
class << self
self
end
end
end
end
Thoughts?
--
Posted via http://www.ruby-forum.com/.
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users