builder.html
来自「perl教程」· HTML 代码 · 共 798 行 · 第 1/3 页
HTML
798 行
<p>Like Test::More's is(). Checks if $got == $expected. This is the
numeric version.</p>
</dd>
<dt><strong><a name="item_isnt_eq"><strong>isnt_eq</strong></a></strong>
<dd>
<pre>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">isnt_eq</span><span class="operator">(</span><span class="variable">$got</span><span class="operator">,</span> <span class="variable">$dont_expect</span><span class="operator">,</span> <span class="variable">$name</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>Like Test::More's isnt(). Checks if $got ne $dont_expect. This is
the string version.</p>
</dd>
<dt><strong><a name="item_isnt_num"><strong>isnt_num</strong></a></strong>
<dd>
<pre>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">is_num</span><span class="operator">(</span><span class="variable">$got</span><span class="operator">,</span> <span class="variable">$dont_expect</span><span class="operator">,</span> <span class="variable">$name</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>Like Test::More's isnt(). Checks if $got ne $dont_expect. This is
the numeric version.</p>
</dd>
<dt><strong><a name="item_like"><strong>like</strong></a></strong>
<dd>
<pre>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">like</span><span class="operator">(</span><span class="variable">$this</span><span class="operator">,</span> <span class="string">qr/$regex/</span><span class="operator">,</span> <span class="variable">$name</span><span class="operator">);</span>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">like</span><span class="operator">(</span><span class="variable">$this</span><span class="operator">,</span> <span class="string">'/$regex/'</span><span class="operator">,</span> <span class="variable">$name</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>Like Test::More's like(). Checks if $this matches the given $regex.</p>
</dd>
<dd>
<p>You'll want to avoid qr// if you want your tests to work before 5.005.</p>
</dd>
<dt><strong><a name="item_unlike"><strong>unlike</strong></a></strong>
<dd>
<pre>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">unlike</span><span class="operator">(</span><span class="variable">$this</span><span class="operator">,</span> <span class="string">qr/$regex/</span><span class="operator">,</span> <span class="variable">$name</span><span class="operator">);</span>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">unlike</span><span class="operator">(</span><span class="variable">$this</span><span class="operator">,</span> <span class="string">'/$regex/'</span><span class="operator">,</span> <span class="variable">$name</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>Like Test::More's unlike(). Checks if $this <strong>does not match</strong> the
given $regex.</p>
</dd>
<dt><strong><a name="item_maybe_regex"><strong>maybe_regex</strong></a></strong>
<dd>
<pre>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">maybe_regex</span><span class="operator">(</span><span class="string">qr/$regex/</span><span class="operator">);</span>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">maybe_regex</span><span class="operator">(</span><span class="string">'/$regex/'</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>Convenience method for building testing functions that take regular
expressions as arguments, but need to work before perl 5.005.</p>
</dd>
<dd>
<p>Takes a quoted regular expression produced by qr//, or a string
representing a regular expression.</p>
</dd>
<dd>
<p>Returns a Perl value which may be used instead of the corresponding
regular expression, or undef if it's argument is not recognised.</p>
</dd>
<dd>
<p>For example, a version of like(), sans the useful diagnostic messages,
could be written as:</p>
</dd>
<dd>
<pre>
<span class="keyword">sub</span><span class="variable"> laconic_like </span><span class="operator">{</span>
<span class="keyword">my</span> <span class="operator">(</span><span class="variable">$self</span><span class="operator">,</span> <span class="variable">$this</span><span class="operator">,</span> <span class="variable">$regex</span><span class="operator">,</span> <span class="variable">$name</span><span class="operator">)</span> <span class="operator">=</span> <span class="variable">@_</span><span class="operator">;</span>
<span class="keyword">my</span> <span class="variable">$usable_regex</span> <span class="operator">=</span> <span class="variable">$self</span><span class="operator">-></span><span class="variable">maybe_regex</span><span class="operator">(</span><span class="variable">$regex</span><span class="operator">);</span>
<span class="keyword">die</span> <span class="string">"expecting regex, found '$regex'\n"</span>
<span class="keyword">unless</span> <span class="variable">$usable_regex</span><span class="operator">;</span>
<span class="variable">$self</span><span class="operator">-></span><span class="variable">ok</span><span class="operator">(</span><span class="variable">$this</span> <span class="operator">=~</span> <span class="regex">m/$usable_regex/</span><span class="operator">,</span> <span class="variable">$name</span><span class="operator">);</span>
<span class="operator">}</span>
</pre>
</dd>
<dt><strong><a name="item_cmp_ok"><strong>cmp_ok</strong></a></strong>
<dd>
<pre>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">cmp_ok</span><span class="operator">(</span><span class="variable">$this</span><span class="operator">,</span> <span class="variable">$type</span><span class="operator">,</span> <span class="variable">$that</span><span class="operator">,</span> <span class="variable">$name</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>Works just like Test::More's cmp_ok().</p>
</dd>
<dd>
<pre>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">cmp_ok</span><span class="operator">(</span><span class="variable">$big_num</span><span class="operator">,</span> <span class="string">'!='</span><span class="operator">,</span> <span class="variable">$other_big_num</span><span class="operator">);</span>
</pre>
</dd>
<dt><strong><a name="item_bail_out"><strong>BAIL_OUT</strong></a></strong>
<dd>
<pre>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">BAIL_OUT</span><span class="operator">(</span><span class="variable">$reason</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>Indicates to the Test::Harness that things are going so badly all
testing should terminate. This includes running any additional test
scripts.</p>
</dd>
<dd>
<p>It will exit with 255.</p>
</dd>
<dt><strong><a name="item_skip"><strong>skip</strong></a></strong>
<dd>
<pre>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">skip</span><span class="operator">;</span>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">skip</span><span class="operator">(</span><span class="variable">$why</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>Skips the current test, reporting $why.</p>
</dd>
<dt><strong><a name="item_todo_skip"><strong>todo_skip</strong></a></strong>
<dd>
<pre>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">todo_skip</span><span class="operator">;</span>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">todo_skip</span><span class="operator">(</span><span class="variable">$why</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>Like skip(), only it will declare the test as failing and TODO. Similar
to</p>
</dd>
<dd>
<pre>
<span class="keyword">print</span> <span class="string">"not ok $tnum # TODO $why\n"</span><span class="operator">;</span>
</pre>
</dd>
</dl>
<p>
</p>
<h2><a name="test_style">Test style</a></h2>
<dl>
<dt><strong><a name="item_level"><strong>level</strong></a></strong>
<dd>
<pre>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">level</span><span class="operator">(</span><span class="variable">$how_high</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>How far up the call stack should $Test look when reporting where the
test failed.</p>
</dd>
<dd>
<p>Defaults to 1.</p>
</dd>
<dd>
<p>Setting $Test::Builder::Level overrides. This is typically useful
localized:</p>
</dd>
<dd>
<pre>
<span class="operator">{</span>
<span class="keyword">local</span> <span class="variable">$Test::Builder::Level</span> <span class="operator">=</span> <span class="number">2</span><span class="operator">;</span>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">ok</span><span class="operator">(</span><span class="variable">$test</span><span class="operator">);</span>
<span class="operator">}</span>
</pre>
</dd>
<dt><strong><a name="item_use_numbers"><strong>use_numbers</strong></a></strong>
<dd>
<pre>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">use_numbers</span><span class="operator">(</span><span class="variable">$on_or_off</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>Whether or not the test should output numbers. That is, this if true:</p>
</dd>
<dd>
<pre>
ok 1
ok 2
ok 3</pre>
</dd>
<dd>
<p>or this if false</p>
</dd>
<dd>
<pre>
ok
ok
ok</pre>
</dd>
<dd>
<p>Most useful when you can't depend on the test output order, such as
when threads or forking is involved.</p>
</dd>
<dd>
<p>Test::Harness will accept either, but avoid mixing the two styles.</p>
</dd>
<dd>
<p>Defaults to on.</p>
</dd>
<dt><strong><a name="item_no_diag"><strong>no_diag</strong></a></strong>
<dd>
<pre>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">no_diag</span><span class="operator">(</span><span class="variable">$no_diag</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>If set true no diagnostics will be printed. This includes calls to
diag().</p>
</dd>
<dt><strong><a name="item_no_ending"><strong>no_ending</strong></a></strong>
<dd>
<pre>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">no_ending</span><span class="operator">(</span><span class="variable">$no_ending</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>Normally, Test::Builder does some extra diagnostics when the test
ends. It also changes the exit code as described below.</p>
</dd>
<dd>
<p>If this is true, none of that will be done.</p>
</dd>
<dt><strong><a name="item_no_header"><strong>no_header</strong></a></strong>
<dd>
<pre>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">no_header</span><span class="operator">(</span><span class="variable">$no_header</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>If set to true, no "1..N" header will be printed.</p>
</dd>
</dl>
<p>
</p>
<h2><a name="output">Output</a></h2>
<p>Controlling where the test output goes.</p>
<p>It's ok for your test to change where STDOUT and STDERR point to,
Test::Builder's default output settings will not be affected.</p>
<dl>
<dt><strong><a name="item_diag"><strong>diag</strong></a></strong>
<dd>
<pre>
<span class="variable">$Test</span><span class="operator">-></span><span class="variable">diag</span><span class="operator">(</span><span class="variable">@msgs</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>Prints out the given @msgs. Like <a href="../../lib/Pod/perlfunc.html#item_print"><code>print</code></a>, arguments are simply
appended together.</p>
</dd>
<dd>
<p>Normally, it uses the <a href="#item_failure_output"><code>failure_output()</code></a> handle, but if this is for a
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?