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]