.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "mocked 3pm" .TH mocked 3pm "2022-12-04" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" mocked \- use mocked libraries in unit tests .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& # use a fake LWP::Simple for testing from t/lib/LWP/Simple.pm \& use mocked \*(AqLWP::Simple\*(Aq; \& my $text = get($url); \& \& # use a fake WWW::Mechanize for testing from t/mock\-libs/WWW/Mechanize.pm \& use mocked [qw(WWW::Mechanize t/mock\-libs)]; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Often during unit testing, you may find the need to use mocked libraries to test edge cases, or prevent unit tests from using slow or external code. .PP This is where mocking libraries can help. .PP When you mock a library, you are creating a fake one that will be used in place of the real one. The code can do as much or as little as is needed. .PP Use mocked.pm as a safety measure (be sure you're actually using the mocked module), and as a way to document the tests for future maintainers. .SH "VARIABLES" .IX Header "VARIABLES" .SS "real_inc_paths" .IX Subsection "real_inc_paths" The real \f(CW@INC\fR that we are over-ridding is stored here while we are loading the mocked library. .SH "FUNCTIONS" .IX Header "FUNCTIONS" .SS "import" .IX Subsection "import" With a package name, this function will ensure that the module you specify is loaded from t/lib. .PP You can also pass an array reference containing the package name and a directory from which to load it from. .SH "AUTHOR" .IX Header "AUTHOR" Luke Closs, \f(CW\*(C`\*(C'\fR Scott McWhirter, \f(CW\*(C`\*(C'\fR .SH "MAD CREDS TO" .IX Header "MAD CREDS TO" Ingy döt net, for only.pm .SH "LICENSE" .IX Header "LICENSE" This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.