stas 2003/08/14 17:48:32 Modified: src/docs/general/testing testing.pod Log: extend on the skip function's usage Revision Changes Path 1.23 +25 -0 modperl-docs/src/docs/general/testing/testing.pod Index: testing.pod =================================================================== RCS file: /home/cvs/modperl-docs/src/docs/general/testing/testing.pod,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- testing.pod 22 Jul 2003 11:01:32 -0000 1.22 +++ testing.pod 15 Aug 2003 00:48:32 -0000 1.23 @@ -2249,6 +2249,31 @@ ok $ok; ok $not_ok; +However if you want to use C<t_cmp()> or some other function call in +the arguments to C<ok()> that won't quite work since the function will +be always called no matter whether the first argument will evaluate to +a true or a false value. For example, if you had a function: + + ok t_cmp($expected, $received, $comment); + +and now you want to run this sub-test if module C<HTTP::Date> is +available, changing it to: + + my $should_skip = eval { require HTTP::Date } ? "" : "missing HTTP::Date"; + skip $should_skip, t_cmp($expected, $received, $comment); + +will still run C<t_cmp()> even if C<HTTP::Date> is not +available. Therefore it's probably better to code it in this way: + + if (eval {require HTTP::Date}) { + ok t_cmp($expected, $received, $comment); + } + else { + skip "Skip HTTP::Date not found"; + } + +=head2 Running only Selected Sub-tests + C<Apache::Test> also allows to write tests in such a way that only selected sub-tests will be run. The test simply needs to switch from using ok() to sok(). Where the argument to sok() is a CODE reference
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]