in reply to Test::MockObject doesn't fool UNIVERSAL

Test::MockObject provides isa() and can() methods that do the right things. If you don't call them, though, you won't get the right answers.

Calling a base class method directly on a derived class that may have overrdden the method is a bad idea. Any code that does that needs a very good reason to do so, or it's broken. (The only good reason I can think of is in UNIVERSAL::isa, which I'll probably use in the next version of Test::MockObject.)

I have the temptation to create a module called UNIVERSAL::new and tell everyone to create their objects with UNIVERSAL::new( 'ClassName', %arguments );.