thor has asked for the wisdom of the Perl Monks concerning the following question:
I've found myself in a position to want to mock out a method call in a module that I've written for the purposes of testing. I can't seem to get it to work, though. First, the setup. My module (let's call it Foo) calls get_param() which is just a normal subroutine in another module (call it Bar) that I wrote. Bar in turn gets a database object from yet another module (call it Baz), gets the correct configuration item from the database, and returns it back. In brief, Foo calls Bar::get_param() calls Baz->get_dbh().
Now, for what I'm trying to do.
However, it seems that when I invoke get_param from within Foo, it is still calling the default get_param instead of my mocked version. I'm obviously missing something, but I can't glean what it might be from the documentation. Would anyone mind sharing some insight?use Test::MockModule; my $foo = Foo->new(); my $module = new Test->MockModule('Bar'); $module->mock(get_param => sub {return 42}); $foo->method_that_calls_get_param();
Thanks in advance,
thor
Feel the white light, the light within
Be your own disciple, fan the sparks of will
For all of us waiting, your kingdom will come
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Test::MockModule question
by Ovid (Cardinal) on Sep 15, 2005 at 17:05 UTC | |
by thor (Priest) on Sep 15, 2005 at 17:56 UTC | |
by Ovid (Cardinal) on Sep 15, 2005 at 18:32 UTC |