Tels posted some of his Test::More experiences off-list. Some of them are rather good so I'll post my reply on-list.
On Wed, Dec 19, 2001 at 10:42:55PM +0100, Tels wrote: > * Use Test::Simple/More for new testfiles. It can help you. If Test::More > scares you, use Test::Simple or only a subset of T::M. > * Don't convert old tests needless, better spent the time adding tests. > (But the conversation might take little time so try it if you have only a > small testsuite). If it makes you feel any better, I still have heaps of modules which I haven't bothered to convert over to Test::More. I do it when I find myself needing a Test::More feature and usually not before. > For the Test-developers: > > * Test::More is already quite confusing (Especially since ok() is no longer > what it used to be and you now must use is()!). Actually, Test::More's ok() is just like Test's ok(). And its not. Test.pm's ok() has at least three forms of operation. ok( $foo eq $bar ); # like Test::More::ok() ok( $foo, $bar ); # like Test::More::is() ok( $foo, qr/bar/ ); # like Test::More::like() and then there's some of the more out there functionality: ok( $foo, $bar ); # like is( &$foo, $bar ); if $foo happens to # be a code ref. I never understood why this # magic was added. ok( $foo, $bar ); # if $bar looks like a regex (ie. "/wibble/") # it works as like(). Otherwise its is(). # Sucks if $bar == '/usr/local/' So I preserved the first of the five (which just happened to correspond to the way I wrote my custom ok() functions) because it is the most generic of them all. You can write any test with it. I also decided that Test::More users would have to learn five different functions rather than learning one function with five different modes of operation. > Insted of spending time to add even more confusing functions that > are used very little (if at all), shouldn't we do something more > usefull? > > For instance, I know of a lot of CPAN modules without tests at all, and I > talked to a few authors, and even if they decide to add tests (after my > 'convincing' emails), it takes time, or never gets done, or the tests are > to simple and too few. An even more confusing Test::More might scare them > off even more. Don't hand them Test::More, hand them Test::Simple. Or Test::Tutorial which eases the user into the Test::More interface. I *might* be convinced into adding is() to Test::Simple. I tend to use that nearly as much as ok(). Test::More's interface is nearly complete. After diag() I don't think I'm going to be adding any more functions. The rest will be either Test::Builder methods or left to a 3rd party Test::Builder based mix-in module (a la Test::Differences) to handle. Of course, with Test::Builder you can make your own test library in your own image and not have to listen to me anymore. -- Michael G. Schwern <[EMAIL PROTECTED]> http://www.pobox.com/~schwern/ Perl Quality Assurance <[EMAIL PROTECTED]> Kwalitee Is Job One Some like elmers glue but it needs reapplying. I use super glue. -- tlk