Re: RFC: Devel::Mockable and Devel::Mock::Generic::InterfaceTester

Karen Etheridge <[email protected]>
Newsgroups gmane.comp.lang.perl.quality-assurance
Message-ID <[email protected]>
On Thu, Oct 25, 2012 at 04:05:05PM +0100, David Cantrell wrote:
> I'm liberating some code that we use at work.  A first cut at CPAN-
> ising it is here (yes, I know it has no tests yet):
>   https://github.com/DrHyde/perl-Devel-Mockable
> 
> What do people think?  The aim is to:

I just took a quick glance while I had a minute, so this isn't very
in-depth:

- our::way: is that a local pragma? it isn't on cpan.
- instead of manually writing into the symbol table, use one of the export
  modules: Exporter, Sub::Exporter, Exporter::Declare etc.
- I'm not sure if this belongs in the Devel namespace - someone else with
  better knowledge of the nomenclature would be better able to say.

How does this add value above simply storing a class name in an accessor
(e.g. a Class::Accessor field or Moose attribute)?  In moose, I could do
this:

has useragent => ( is => 'ro', isa => 'Str', default => 'LWP::UserAgent' );

and then in testing, simply construct my class as:
my $obj = Foo->new(..., useragent => 'Test::LWP::UserAgent');
...to swap out its implementation with something that is mockable.


-- 
             Don't anthromoporphize computers.  They _hate_ that!
            .             .            .            .             .
Karen Etheridge, [email protected]       GCS C+++$ USL+++$ P+++$ w--- M++
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.