On Fri, Feb 11, 2005 at 07:30:24AM -0500, David Golden wrote:
> Very nice integration of IO::Capture.
> 
> I think this is very promising, but all the start(), stop() calls seem 
> overly repetitive to me.  What about refactoring it into a set of test 
> functions that handle it for the user automatically?  Just quickly off the 
> cuff, what about a test module (Test::Output?  Test::Print? ) that provided 
> functions like this:
> 
> stdout_is      { fcn() } $string, "comment"; # exact
> stdout_like    { fcn() } qr/regex/, "comment"; # regex match
> stdout_count   { fcn() } qr/regex/, $count, "comment";  # number of matches
> stdout_found   { fcn() } qr/regex/, [EMAIL PROTECTED], "comment"; # list of 
> matches

The trouble with this interface is sometimes you want to collect a bunch
of output from a bunch of different functions together.

What the little TieOut module that MakeMaker and Test::More uses is it
provides an object and a read() method.  read() is destructive, when called
it returns whatever was in the buffer and wipes the buffer clean.  This
way you can collect as much as you want in a natural way without having
to use start/stop functions or shoving everything into a block.


Reply via email to