in reply to Stringification of MockObjects

I assume you are building your own Mock Objects, and not using Test::MockObject. In which case, all you need to do to automatically stringify your object is to make them overload the "" operator.

# assuming there is a stringify method # that does the right thing use overload ('""' => \&stringify);
I think this will do what you are looking for.

-stvn

Replies are listed 'Best First'.
Re: Re: Stringification of MockObjects
by water (Deacon) on May 20, 2004 at 01:10 UTC
    Errrr.... I am using Test::MockObject::Extends, in fact.

    Your point is that if I'm handrolling my own mocks, I just overload it like any other object, yes? If that is your point, then, yes, I get what you are saying and I agree -- but I am following the Virtue of Laziness and using T:MO:E.

    Suggestions for my case, beyond "roll-your-own"?

      To be honest, I am not all that familiar with Test::MockObject, as I have yet to find a situation to use it in. Am I right in assuming that you are using Test::MockObject::Extends to mock parts of Class::DBI objects? Or is it to mock other objects?

      One possiblity might be to move your mock objects down a level, and use DBD::Mock as a faux-database, rather than mocking Class::DBI (if that is indeed what you are doing)? This would allow you to use Class::DBI as you would normally. Personally, I like to mock as little as possible, and as "low to the ground" as possible (database, network connection, etc.).

      But I am just making assumptions here, if you want to provide more info about exactly what it is you are trying to do, I might be able to help more. And of course you could always try messaging chromatic, since he is the one who wrote Test::MockObject in the first place.

      -stvn