On Tue, Nov 12, 2002 at 04:21:38PM +0000, Adrian Howard wrote:
> >At YAPC::Europe there was some discussion about Test::Builder->level,
> >$Test::Builder::Level and the fact that they don't really work well as
> >implemented.  I know we reached some sort of consensus about how to do it
> >better, but I've forgotten it.
> 
> Yet another suggestion to add to the list of possible options.
> 
> Most of the time when I need to mess with level, the code that does
> the test is sitting in a different package from the one that is
> calling the test. How about having it walk up the call stack until it
> find a package that differs from the one it was called in?
> 
> No nasty messing with numbers and you don't have to fiddle with it
> every time you add/remove a sub in the call chain.

ETOOMAGICAL and it makes it impossible to have something like this:

            # Test code
            use Test::Foo 'test_func';
            test_func($stuff);
            
            
            # Test/Foo.pm
            package Test::Foo;
            
            use Test::Foo::Bar 'real_test_func';
            
            sub test_func {
                ...
                real_test_func(@_);
                ...
            }


            # Test/Foo/Bar.pm
            package Test::Foo::Bar
            use Test::Builder;
            my $TB = Test::Builder->new;
            
            sub real_test_func {
                ...
                $TB->ok($test);
                ...
            }

a practical example would be an Exporter/Exporter::Heavy poor-man's
autoloader setup.

Of course, there's nothing stopping you from overriding level() to be
magical, once I implement your ideas about being able to change the default
object and stack them.


-- 

Michael G. Schwern   <[EMAIL PROTECTED]>    http://www.pobox.com/~schwern/
Perl Quality Assurance      <[EMAIL PROTECTED]>         Kwalitee Is Job One
You'll do.

Reply via email to