stas 2003/04/06 21:41:47
Modified: src/docs/general/testing testing.pod
Log:
have() now can handle scalars in addition to code refs in hash refs
Revision Changes Path
1.13 +16 -9 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.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- testing.pod 1 Apr 2003 04:42:47 -0000 1.12
+++ testing.pod 7 Apr 2003 04:41:47 -0000 1.13
@@ -1862,23 +1862,30 @@
requirements at once.
have()'s arguments can include scalars, which are passed to
-have_module(), and hash references. The hash references have a
-condition code reference as a value and a reason for failure as a
-key. The condition code is run and if it fails the provided reason is
-used to tell user why the test was skipped.
+have_module(), and hash references. If hash references are used, the
+keys, are strings, containing a reason for a failure to satisfy this
+particular entry, the valuees are the condition, which are
+satisfaction if they return true. If the value is a scalar it's used
+as is. If the value is a code reference, it gets executed at the time
+of check and its return value is used to check the condition. If the
+condition check fails, the provided (in a key) reason is used to tell
+user why the test was skipped.
For example:
plan tests => 5,
have 'LWP',
- { "perl >= 5.7.3 is required" => sub { $] >= 5.007003 } },
- { "not Win32" => sub { $^O eq 'MSWin32' } },
+ { "perl >= 5.8.0 is required" => ($] >= 5.008) },
+ { "not Win32" => sub { $^O eq 'MSWin32' },
+ "foo is disabled" => \&is_foo_enabled,
+ },
'cgid';
In this example, we require the presense of the C<LWP> Perl module,
-C<mod_cgid>, that we run under perl E<gt>= 5.7.3 on Win32. If any of
-the requirements from this list fail, the test will be skipped and
-each failed requiremnt will print a reason for its failure.
+C<mod_cgid>, that we run under perl E<gt>= 5.7.3 on Win32, and that
+C<is_foo_enabled> returns true. If any of the requirements from this
+list fail, the test will be skipped and each failed requiremnt will
+print a reason for its failure.
=item * have_perl()