⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test::builder.3

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 3
📖 第 1 页 / 共 2 页
字号:
.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05).\".\" Standard preamble:.\" ========================================================================.de Sh \" Subsection heading.br.if t .Sp.ne 5.PP\fB\\$1\fR.PP...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" '''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 turned on, we'll generate index entries on stderr for.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index.\" entries marked with X<> in POD.  Of course, you'll have to process the.\" output yourself in some meaningful fashion..ie \nF \{\.    de IX.    tm Index:\\$1\t\\n%\t"\\$2"...    nr % 0.    rr F.\}.el \{\.    de IX...\}.\".\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2)..\" Fear.  Run.  Save yourself.  No user-serviceable parts..    \" fudge factors for nroff and troff.if n \{\.    ds #H 0.    ds #V .8m.    ds #F .3m.    ds #[ \f1.    ds #] \fP.\}.if t \{\.    ds #H ((1u-(\\\\n(.fu%2u))*.13m).    ds #V .6m.    ds #F 0.    ds #[ \&.    ds #] \&.\}.    \" simple accents for nroff and troff.if n \{\.    ds ' \&.    ds ` \&.    ds ^ \&.    ds , \&.    ds ~ ~.    ds /.\}.if t \{\.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u".    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'.\}.    \" troff and (daisy-wheel) nroff accents.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'.ds 8 \h'\*(#H'\(*b\h'-\*(#H'.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#].ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#].ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#].ds ae a\h'-(\w'a'u*4/10)'e.ds Ae A\h'-(\w'A'u*4/10)'E.    \" corrections for vroff.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'.    \" for low resolution devices (crt and lpr).if \n(.H>23 .if \n(.V>19 \\{\.    ds : e.    ds 8 ss.    ds o a.    ds d- d\h'-1'\(ga.    ds D- D\h'-1'\(hy.    ds th \o'bp'.    ds Th \o'LP'.    ds ae ae.    ds Ae AE.\}.rm #[ #] #H #V #F C.\" ========================================================================.\".IX Title "Test::Builder 3".TH Test::Builder 3 "2007-11-29" "perl v5.10.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"Test::Builder \- Backend for building test libraries.SH "SYNOPSIS".IX Header "SYNOPSIS".Vb 5\&  package My::Test::Module;\&  use Test::Builder;\&  require Exporter;\&  @ISA = qw(Exporter);\&  @EXPORT = qw(ok);\&\&  my $Test = Test::Builder\->new;\&  $Test\->output(\*(Aqmy_logfile\*(Aq);\&\&  sub import {\&      my($self) = shift;\&      my $pack = caller;\&\&      $Test\->exported_to($pack);\&      $Test\->plan(@_);\&\&      $self\->export_to_level(1, $self, \*(Aqok\*(Aq);\&  }\&\&  sub ok {\&      my($test, $name) = @_;\&\&      $Test\->ok($test, $name);\&  }.Ve.SH "DESCRIPTION".IX Header "DESCRIPTION"Test::Simple and Test::More have proven to be popular testing modules,but they're not always flexible enough.  Test::Builder provides the abuilding block upon which to write your own test libraries \fIwhich canwork together\fR..Sh "Construction".IX Subsection "Construction".IP "\fBnew\fR" 4.IX Item "new".Vb 1\&  my $Test = Test::Builder\->new;.Ve.SpReturns a Test::Builder object representing the current state of thetest..SpSince you only run one test per program \f(CW\*(C`new\*(C'\fR always returns the sameTest::Builder object.  No matter how many times you call \fInew()\fR, you'regetting the same object.  This is called a singleton.  This is done so thatmultiple modules share such global information as the test counter andwhere test output is going..SpIf you want a completely new Test::Builder object different from thesingleton, use \f(CW\*(C`create\*(C'\fR..IP "\fBcreate\fR" 4.IX Item "create".Vb 1\&  my $Test = Test::Builder\->create;.Ve.SpOk, so there can be more than one Test::Builder object and this is howyou get it.  You might use this instead of \f(CW\*(C`new()\*(C'\fR if you're testinga Test::Builder based module, but otherwise you probably want \f(CW\*(C`new\*(C'\fR..Sp\&\fB\s-1NOTE\s0\fR: the implementation is not complete.  \f(CW\*(C`level\*(C'\fR, for example, isstill shared amongst \fBall\fR Test::Builder objects, even ones created usingthis method.  Also, the method name may change in the future..IP "\fBreset\fR" 4.IX Item "reset".Vb 1\&  $Test\->reset;.Ve.SpReinitializes the Test::Builder singleton to its original state.Mostly useful for tests run in persistent environments where the sametest might be run multiple times in the same process..Sh "Setting up tests".IX Subsection "Setting up tests"These methods are for setting up tests and declaring how many thereare.  You usually only want to call one of these methods..IP "\fBexported_to\fR" 4.IX Item "exported_to".Vb 2\&  my $pack = $Test\->exported_to;\&  $Test\->exported_to($pack);.Ve.SpTells Test::Builder what package you exported your functions to.This is important for getting \s-1TODO\s0 tests right..IP "\fBplan\fR" 4.IX Item "plan".Vb 3\&  $Test\->plan(\*(Aqno_plan\*(Aq);\&  $Test\->plan( skip_all => $reason );\&  $Test\->plan( tests => $num_tests );.Ve.SpA convenient way to set up your tests.  Call this and Test::Builderwill print the appropriate headers and take the appropriate actions..SpIf you call \fIplan()\fR, don't call any of the other methods below..IP "\fBexpected_tests\fR" 4.IX Item "expected_tests".Vb 2\&    my $max = $Test\->expected_tests;\&    $Test\->expected_tests($max);.Ve.SpGets/sets the # of tests we expect this test to run and prints outthe appropriate headers..IP "\fBno_plan\fR" 4.IX Item "no_plan".Vb 1\&  $Test\->no_plan;.Ve.SpDeclares that this test will run an indeterminate # of tests..IP "\fBhas_plan\fR" 4.IX Item "has_plan".Vb 1\&  $plan = $Test\->has_plan.Ve.SpFind out whether a plan has been defined. \f(CW$plan\fR is either \f(CW\*(C`undef\*(C'\fR (no plan has been set), \f(CW\*(C`no_plan\*(C'\fR (indeterminate # of tests) or an integer (the number of expected tests)..IP "\fBskip_all\fR" 4.IX Item "skip_all".Vb 2\&  $Test\->skip_all;\&  $Test\->skip_all($reason);.Ve.SpSkips all the tests, using the given \f(CW$reason\fR.  Exits immediately with 0..Sh "Running tests".IX Subsection "Running tests"These actually run the tests, analogous to the functions in Test::More..PPThey all return true if the test passed, false if the test failed..PP\&\f(CW$name\fR is always optional..IP "\fBok\fR" 4.IX Item "ok".Vb 1\&  $Test\->ok($test, $name);.Ve.SpYour basic test.  Pass if \f(CW$test\fR is true, fail if \f(CW$test\fR is false.  Justlike Test::Simple's \fIok()\fR..IP "\fBis_eq\fR" 4.IX Item "is_eq".Vb 1\&  $Test\->is_eq($got, $expected, $name);.Ve.SpLike Test::More's \fIis()\fR.  Checks if \f(CW$got\fR eq \f(CW$expected\fR.  This is thestring version..IP "\fBis_num\fR" 4.IX Item "is_num".Vb 1\&  $Test\->is_num($got, $expected, $name);.Ve.SpLike Test::More's \fIis()\fR.  Checks if \f(CW$got\fR == \f(CW$expected\fR.  This is thenumeric version..IP "\fBisnt_eq\fR" 4.IX Item "isnt_eq".Vb 1\&  $Test\->isnt_eq($got, $dont_expect, $name);.Ve.SpLike Test::More's \fIisnt()\fR.  Checks if \f(CW$got\fR ne \f(CW$dont_expect\fR.  This isthe string version..IP "\fBisnt_num\fR" 4.IX Item "isnt_num".Vb 1\&  $Test\->isnt_num($got, $dont_expect, $name);.Ve.SpLike Test::More's \fIisnt()\fR.  Checks if \f(CW$got\fR ne \f(CW$dont_expect\fR.  This isthe numeric version..IP "\fBlike\fR" 4.IX Item "like".Vb 2\&  $Test\->like($this, qr/$regex/, $name);\&  $Test\->like($this, \*(Aq/$regex/\*(Aq, $name);.Ve.SpLike Test::More's \fIlike()\fR.  Checks if \f(CW$this\fR matches the given \f(CW$regex\fR..SpYou'll want to avoid qr// if you want your tests to work before 5.005..IP "\fBunlike\fR" 4.IX Item "unlike".Vb 2\&  $Test\->unlike($this, qr/$regex/, $name);\&  $Test\->unlike($this, \*(Aq/$regex/\*(Aq, $name);.Ve.SpLike Test::More's \fIunlike()\fR.  Checks if \f(CW$this\fR \fBdoes not match\fR thegiven \f(CW$regex\fR..IP "\fBcmp_ok\fR" 4.IX Item "cmp_ok".Vb 1\&  $Test\->cmp_ok($this, $type, $that, $name);.Ve.SpWorks just like Test::More's \fIcmp_ok()\fR..Sp.Vb 1\&    $Test\->cmp_ok($big_num, \*(Aq!=\*(Aq, $other_big_num);.Ve.Sh "Other Testing Methods".IX Subsection "Other Testing Methods"These are methods which are used in the course of writing a test but are not themselves tests..IP "\fB\s-1BAIL_OUT\s0\fR" 4.IX Item "BAIL_OUT".Vb 1\&    $Test\->BAIL_OUT($reason);.Ve.SpIndicates to the Test::Harness that things are going so badly alltesting should terminate.  This includes running any additional testscripts..SpIt will exit with 255..IP "\fBskip\fR" 4.IX Item "skip".Vb 2\&    $Test\->skip;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -