in reply to Re: testing code
in thread testing code

I'm wondering why I should think about switching from Test::Simple to Test::More. What is it that gives Test::More its "Moreness" ?

Replies are listed 'Best First'.
Re^3: testing code
by adrianh (Chancellor) on May 07, 2004 at 20:19 UTC
    I'm wondering why I should think about switching from Test::Simple to Test::More.

    If you're doing anything non-trivial it will probably help.

    What is it that gives Test::More its "Moreness" ?

    It gives you more expressive ways to talk about your tests. So instead of saying:

    ok ( $foo =~ /bar/, 'contains bar'); ok ( UNIVERSAL::isa($o, 'MyClass'), 'isa MyClass' ); ok( $foo eq 'bar', 'equals bar' );

    you can say

    like( $foo, qr/foo/, 'contains bar' ); isa_ok( $o, 'MyClass' ); is( $foo, 'bar', 'equals bar' );

    which is marginally easier to comprehend. You also get more informative test failures, for example if you do:

    is( 'apples', 'oranges', 'expecting to find some oranges' );

    you'll get the informative

    not ok 1 - expecting to find some oranges # Failed test (-e at line 1) # got: 'apples' # expected: 'oranges'

    rather than just

    not ok 1 - expecting to find some oranges

    You'll find the same sort of advantages with other Test:: modules. You get to express you test more precisely and you get better feedback on test failures.