man.html in difects-3.0.0 vs man.html in difects-3.0.1

- old
+ new

@@ -81,11 +81,11 @@ <a href="#SEE-ALSO">SEE ALSO</a> </div> <ol class='man-decor man-head man head'> <li class='tl'>difects(1)</li> - <li class='tc'>Version 3.0.0</li> + <li class='tc'>Version 3.0.1</li> <li class='tr'>difects(1)</li> </ol> <h2 id="NAME">NAME</h2> <p class="man-name"> @@ -152,11 +152,11 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2> <p>Evaluates the given <var>FILE</var>s and also files matching the given <var>GLOB</var> patterns.</p> <p>The exit status of this command reflects the number of errors and assertion -failures up to a maximum of 255 (to avoid 8-bit unsigned integer overflow).</p> +failures (up to a maximum of 255 to avoid 8-bit unsigned integer overflow).</p> <h2 id="OPTIONS">OPTIONS</h2> <dl> <dt><code>-d</code>, <code>--debug</code></dt><dd><p>Launch interactive debugger upon assertion failures.</p></dd> @@ -181,40 +181,37 @@ </code></pre> <h3 id="Hooks">Hooks</h3> <p>A <strong>hook</strong> is a scheduled point of entry into the test execution process. The -<code>D()</code> method provides several of them:</p> +following <strong>hook methods</strong> allow you to register a block of code to execute +when a hook occurs:</p> -<pre><code>D "outer test" do - D .&lt; { puts "before each nested test" } - D .&gt; { puts "after each nested test" } - D .&lt;&lt; { puts "before all nested tests" } - D .&gt;&gt; { puts "after all nested tests" } +<dl> +<dt class="flush"><code>D.&lt;()</code></dt><dd><p>Calls the given block <em>before each</em> child test.</p></dd> +<dt class="flush"><code>D.&gt;()</code></dt><dd><p>Calls the given block <em>after each</em> child test.</p></dd> +<dt class="flush"><code>D.&lt;&lt;()</code></dt><dd><p>Calls the given block <em>before all</em> child tests.</p></dd> +<dt class="flush"><code>D.&gt;&gt;()</code></dt><dd><p>Calls the given block <em>after all</em> child tests.</p></dd> +</dl> - D "inner test" do - # assertions and logic here - end -end -</code></pre> -<p>A hook method can be called multiple times. Every call to a hook method -schedules additional logic to be executed during the hook:</p> +<p>A hook method can be called multiple times. Each additional call schedules +more logic to be executed during the hook:</p> <pre><code>D .&lt; { puts "do something" } D .&lt; { puts "do something more!" } </code></pre> <h3 id="Insulation">Insulation</h3> -<p>The <code>D!()</code> method defines a new test that is explicitly insulated from -the tests that contain it and also from the top-level Ruby environment. +<p>The <code>D!()</code> method defines a new test that is explicitly insulated from the +tests that contain it and also from the top-level Ruby environment. Root-level calls to the <code>D()</code> method are insulated by default.</p> <p>Inside an insulated test, you are free to mix-in (using the <code>extend</code> keyword, -not the <code>include</code> keyword) any modules your test logic needs and also define -your own constants, methods, and classes.</p> +not the <code>include</code> keyword) any modules your test logic needs. You can also +define your own constants, methods, and classes.</p> <h3 id="Sharing">Sharing</h3> <dl> <dt class="flush"><code>S()</code></dt><dd><p>Mechanism for sharing code. When called with a block, it shares the given @@ -230,11 +227,11 @@ <h3 id="Information">Information</h3> <dl> <dt class="flush"><code>I()</code></dt><dd><p>Mechanism for inserting arbitrary Ruby objects into the test execution -report. You can think of this method as a way to <em>inform</em> yourself.</p></dd> +report. You can think of this method as being a way to <em>inform</em> someone.</p></dd> <dt class="flush"><code>I!()</code></dt><dd><p>Starts the interactive debugger at the location where it is called.</p></dd> </dl> <h3 id="Execution">Execution</h3> @@ -242,11 +239,10 @@ <p>Tests are executed in depth-first search (DFS) order.</p> <p>You can configure the test execution process using:</p> <pre><code>DIFECTS.debug = your_choice_here -DIFECTS.quiet = your_choice_here </code></pre> <p>You can execute all tests defined thus far using:</p> <pre><code>DIFECTS.start @@ -359,15 +355,15 @@ </code></pre> <p>Failure reports are composed of the following sections:</p> <dl> -<dt class="flush">fail</dt><dd><p>Description of the assertion failure.</p></dd> -<dt class="flush">call</dt><dd><p>Stack trace leading to the point of failure.</p></dd> -<dt class="flush">code</dt><dd><p>Source code surrounding the point of failure.</p></dd> -<dt class="flush">bind</dt><dd><p>Location where local variables (in the "vars" section) were extracted.</p></dd> -<dt class="flush">vars</dt><dd><p>Local variables visible at the point of failure.</p></dd> +<dt class="flush"><code>:fail</code></dt><dd><p>Description of the assertion failure.</p></dd> +<dt class="flush"><code>:call</code></dt><dd><p>Stack trace leading to the point of failure.</p></dd> +<dt class="flush"><code>:code</code></dt><dd><p>Source code surrounding the point of failure.</p></dd> +<dt class="flush"><code>:bind</code></dt><dd><p>Location where local variables (in the "vars" section) were extracted.</p></dd> +<dt class="flush"><code>:vars</code></dt><dd><p>Local variables visible at the point of failure.</p></dd> </dl> <p>After the failure is reported, you will be placed into a debugger to investigate the failure if the <code>DIFECTS.debug</code> option is enabled.</p> @@ -394,114 +390,114 @@ <p>This library emulates <a href="http://rspec.info">RSpec</a> by adding the following methods to the <code>DIFECTS</code> module.</p> <dl> -<dt><code>after</code>(<em>what</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/spec.rb#L21">lib/difects/spec.rb:21</a></p></dd> -<dt><code>before</code>(<em>what</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/spec.rb#L10">lib/difects/spec.rb:10</a></p></dd> -<dt><code>context</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>describe</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>it</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> +<dt><code>after</code>(<em>what</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/spec.rb#L21">lib/difects/spec.rb:21</a>.</p></dd> +<dt><code>before</code>(<em>what</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/spec.rb#L10">lib/difects/spec.rb:10</a>.</p></dd> +<dt><code>context</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>describe</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>it</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> </dl> <h3 id="difects-unit">difects/unit</h3> <p>This library emulates <a href="http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html">Test::Unit</a> by adding the following methods to the <code>DIFECTS</code> module.</p> <dl> -<dt><code>assert</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>assert_empty</code>(<em>collection</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L26">lib/difects/unit.rb:26</a></p></dd> -<dt><code>assert_equal</code>(<em>expected</em>, <em>actual</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L31">lib/difects/unit.rb:31</a></p></dd> -<dt><code>assert_in_delta</code>(<em>expected</em>, <em>actual</em>, <em>delta</em>=nil, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L36">lib/difects/unit.rb:36</a></p></dd> -<dt><code>assert_in_epsilon</code>(<em>expected</em>, <em>actual</em>, <em>delta</em>=nil, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L36">lib/difects/unit.rb:36</a></p></dd> -<dt><code>assert_include</code>(<em>item</em>, <em>collection</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L47">lib/difects/unit.rb:47</a></p></dd> -<dt><code>assert_instance_of</code>(<em>klass</em>, <em>object</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L52">lib/difects/unit.rb:52</a></p></dd> -<dt><code>assert_kind_of</code>(<em>klass</em>, <em>object</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L57">lib/difects/unit.rb:57</a></p></dd> -<dt><code>assert_match</code>(<em>pattern</em>, <em>string</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L67">lib/difects/unit.rb:67</a></p></dd> -<dt><code>assert_nil</code>(<em>object</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L62">lib/difects/unit.rb:62</a></p></dd> -<dt><code>assert_not</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>assert_not_empty</code>(<em>collection</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L26">lib/difects/unit.rb:26</a></p></dd> -<dt><code>assert_not_equal</code>(<em>expected</em>, <em>actual</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L31">lib/difects/unit.rb:31</a></p></dd> -<dt><code>assert_not_in_delta</code>(<em>expected</em>, <em>actual</em>, <em>delta</em>=nil, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L36">lib/difects/unit.rb:36</a></p></dd> -<dt><code>assert_not_in_epsilon</code>(<em>expected</em>, <em>actual</em>, <em>delta</em>=nil, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L36">lib/difects/unit.rb:36</a></p></dd> -<dt><code>assert_not_include</code>(<em>item</em>, <em>collection</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L47">lib/difects/unit.rb:47</a></p></dd> -<dt><code>assert_not_instance_of</code>(<em>klass</em>, <em>object</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L52">lib/difects/unit.rb:52</a></p></dd> -<dt><code>assert_not_kind_of</code>(<em>klass</em>, <em>object</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L57">lib/difects/unit.rb:57</a></p></dd> -<dt><code>assert_not_match</code>(<em>pattern</em>, <em>string</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L67">lib/difects/unit.rb:67</a></p></dd> -<dt><code>assert_not_nil</code>(<em>object</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L62">lib/difects/unit.rb:62</a></p></dd> -<dt><code>assert_not_operator</code>(<em>object</em>, <em>operator</em>, <em>operand</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L77">lib/difects/unit.rb:77</a></p></dd> -<dt><code>assert_not_raise</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L82">lib/difects/unit.rb:82</a></p></dd> -<dt><code>assert_not_respond_to</code>(<em>object</em>, <em>query</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L86">lib/difects/unit.rb:86</a></p></dd> -<dt><code>assert_not_same</code>(<em>expected</em>, <em>actual</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L72">lib/difects/unit.rb:72</a></p></dd> -<dt><code>assert_not_send</code>(<em>object</em>, <em>query</em>, *<em>args</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L95">lib/difects/unit.rb:95</a></p></dd> -<dt><code>assert_not_throw</code>(<em>symbol</em>, <em>message</em>=nil, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L91">lib/difects/unit.rb:91</a></p></dd> -<dt><code>assert_operator</code>(<em>object</em>, <em>operator</em>, <em>operand</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L77">lib/difects/unit.rb:77</a></p></dd> -<dt><code>assert_raise</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L82">lib/difects/unit.rb:82</a></p></dd> -<dt><code>assert_respond_to</code>(<em>object</em>, <em>query</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L86">lib/difects/unit.rb:86</a></p></dd> -<dt><code>assert_same</code>(<em>expected</em>, <em>actual</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L72">lib/difects/unit.rb:72</a></p></dd> -<dt><code>assert_send</code>(<em>object</em>, <em>query</em>, *<em>args</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L95">lib/difects/unit.rb:95</a></p></dd> -<dt><code>assert_throw</code>(<em>symbol</em>, <em>message</em>=nil, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L91">lib/difects/unit.rb:91</a></p></dd> -<dt><code>setup</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>setup!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>teardown</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>teardown!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>test</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> +<dt><code>assert</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>assert_empty</code>(<em>collection</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L26">lib/difects/unit.rb:26</a>.</p></dd> +<dt><code>assert_equal</code>(<em>expected</em>, <em>actual</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L31">lib/difects/unit.rb:31</a>.</p></dd> +<dt><code>assert_in_delta</code>(<em>expected</em>, <em>actual</em>, <em>delta</em>=nil, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L36">lib/difects/unit.rb:36</a>.</p></dd> +<dt><code>assert_in_epsilon</code>(<em>expected</em>, <em>actual</em>, <em>delta</em>=nil, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L36">lib/difects/unit.rb:36</a>.</p></dd> +<dt><code>assert_include</code>(<em>item</em>, <em>collection</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L47">lib/difects/unit.rb:47</a>.</p></dd> +<dt><code>assert_instance_of</code>(<em>klass</em>, <em>object</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L52">lib/difects/unit.rb:52</a>.</p></dd> +<dt><code>assert_kind_of</code>(<em>klass</em>, <em>object</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L57">lib/difects/unit.rb:57</a>.</p></dd> +<dt><code>assert_match</code>(<em>pattern</em>, <em>string</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L67">lib/difects/unit.rb:67</a>.</p></dd> +<dt><code>assert_nil</code>(<em>object</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L62">lib/difects/unit.rb:62</a>.</p></dd> +<dt><code>assert_not</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>assert_not_empty</code>(<em>collection</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L26">lib/difects/unit.rb:26</a>.</p></dd> +<dt><code>assert_not_equal</code>(<em>expected</em>, <em>actual</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L31">lib/difects/unit.rb:31</a>.</p></dd> +<dt><code>assert_not_in_delta</code>(<em>expected</em>, <em>actual</em>, <em>delta</em>=nil, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L36">lib/difects/unit.rb:36</a>.</p></dd> +<dt><code>assert_not_in_epsilon</code>(<em>expected</em>, <em>actual</em>, <em>delta</em>=nil, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L36">lib/difects/unit.rb:36</a>.</p></dd> +<dt><code>assert_not_include</code>(<em>item</em>, <em>collection</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L47">lib/difects/unit.rb:47</a>.</p></dd> +<dt><code>assert_not_instance_of</code>(<em>klass</em>, <em>object</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L52">lib/difects/unit.rb:52</a>.</p></dd> +<dt><code>assert_not_kind_of</code>(<em>klass</em>, <em>object</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L57">lib/difects/unit.rb:57</a>.</p></dd> +<dt><code>assert_not_match</code>(<em>pattern</em>, <em>string</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L67">lib/difects/unit.rb:67</a>.</p></dd> +<dt><code>assert_not_nil</code>(<em>object</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L62">lib/difects/unit.rb:62</a>.</p></dd> +<dt><code>assert_not_operator</code>(<em>object</em>, <em>operator</em>, <em>operand</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L77">lib/difects/unit.rb:77</a>.</p></dd> +<dt><code>assert_not_raise</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L82">lib/difects/unit.rb:82</a>.</p></dd> +<dt><code>assert_not_respond_to</code>(<em>object</em>, <em>query</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L86">lib/difects/unit.rb:86</a>.</p></dd> +<dt><code>assert_not_same</code>(<em>expected</em>, <em>actual</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L72">lib/difects/unit.rb:72</a>.</p></dd> +<dt><code>assert_not_send</code>(<em>object</em>, <em>query</em>, *<em>args</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L95">lib/difects/unit.rb:95</a>.</p></dd> +<dt><code>assert_not_throw</code>(<em>symbol</em>, <em>message</em>=nil, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L91">lib/difects/unit.rb:91</a>.</p></dd> +<dt><code>assert_operator</code>(<em>object</em>, <em>operator</em>, <em>operand</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L77">lib/difects/unit.rb:77</a>.</p></dd> +<dt><code>assert_raise</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L82">lib/difects/unit.rb:82</a>.</p></dd> +<dt><code>assert_respond_to</code>(<em>object</em>, <em>query</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L86">lib/difects/unit.rb:86</a>.</p></dd> +<dt><code>assert_same</code>(<em>expected</em>, <em>actual</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L72">lib/difects/unit.rb:72</a>.</p></dd> +<dt><code>assert_send</code>(<em>object</em>, <em>query</em>, *<em>args</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L95">lib/difects/unit.rb:95</a>.</p></dd> +<dt><code>assert_throw</code>(<em>symbol</em>, <em>message</em>=nil, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L91">lib/difects/unit.rb:91</a>.</p></dd> +<dt><code>setup</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>setup!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>teardown</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>teardown!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>test</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> </dl> <h3 id="difects-mini">difects/mini</h3> <p>This library emulates <a href="http://blog.zenspider.com/minitest/">Minitest</a> by adding the following methods to the <code>DIFECTS</code> module.</p> <dl> -<dt><code>refute</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>refute_empty</code>(<em>collection</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L26">lib/difects/unit.rb:26</a></p></dd> -<dt><code>refute_equal</code>(<em>expected</em>, <em>actual</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L31">lib/difects/unit.rb:31</a></p></dd> -<dt><code>refute_in_delta</code>(<em>expected</em>, <em>actual</em>, <em>delta</em>=nil, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L36">lib/difects/unit.rb:36</a></p></dd> -<dt><code>refute_in_epsilon</code>(<em>expected</em>, <em>actual</em>, <em>delta</em>=nil, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L36">lib/difects/unit.rb:36</a></p></dd> -<dt><code>refute_include</code>(<em>item</em>, <em>collection</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L47">lib/difects/unit.rb:47</a></p></dd> -<dt><code>refute_instance_of</code>(<em>klass</em>, <em>object</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L52">lib/difects/unit.rb:52</a></p></dd> -<dt><code>refute_kind_of</code>(<em>klass</em>, <em>object</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L57">lib/difects/unit.rb:57</a></p></dd> -<dt><code>refute_match</code>(<em>pattern</em>, <em>string</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L67">lib/difects/unit.rb:67</a></p></dd> -<dt><code>refute_nil</code>(<em>object</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L62">lib/difects/unit.rb:62</a></p></dd> -<dt><code>refute_operator</code>(<em>object</em>, <em>operator</em>, <em>operand</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L77">lib/difects/unit.rb:77</a></p></dd> -<dt><code>refute_raise</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L82">lib/difects/unit.rb:82</a></p></dd> -<dt><code>refute_respond_to</code>(<em>object</em>, <em>query</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L86">lib/difects/unit.rb:86</a></p></dd> -<dt><code>refute_same</code>(<em>expected</em>, <em>actual</em>, <em>message</em>=nil)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L72">lib/difects/unit.rb:72</a></p></dd> -<dt><code>refute_send</code>(<em>object</em>, <em>query</em>, *<em>args</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L95">lib/difects/unit.rb:95</a></p></dd> -<dt><code>refute_throw</code>(<em>symbol</em>, <em>message</em>=nil, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L91">lib/difects/unit.rb:91</a></p></dd> +<dt><code>refute</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>refute_empty</code>(<em>collection</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L26">lib/difects/unit.rb:26</a>.</p></dd> +<dt><code>refute_equal</code>(<em>expected</em>, <em>actual</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L31">lib/difects/unit.rb:31</a>.</p></dd> +<dt><code>refute_in_delta</code>(<em>expected</em>, <em>actual</em>, <em>delta</em>=nil, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L36">lib/difects/unit.rb:36</a>.</p></dd> +<dt><code>refute_in_epsilon</code>(<em>expected</em>, <em>actual</em>, <em>delta</em>=nil, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L36">lib/difects/unit.rb:36</a>.</p></dd> +<dt><code>refute_include</code>(<em>item</em>, <em>collection</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L47">lib/difects/unit.rb:47</a>.</p></dd> +<dt><code>refute_instance_of</code>(<em>klass</em>, <em>object</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L52">lib/difects/unit.rb:52</a>.</p></dd> +<dt><code>refute_kind_of</code>(<em>klass</em>, <em>object</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L57">lib/difects/unit.rb:57</a>.</p></dd> +<dt><code>refute_match</code>(<em>pattern</em>, <em>string</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L67">lib/difects/unit.rb:67</a>.</p></dd> +<dt><code>refute_nil</code>(<em>object</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L62">lib/difects/unit.rb:62</a>.</p></dd> +<dt><code>refute_operator</code>(<em>object</em>, <em>operator</em>, <em>operand</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L77">lib/difects/unit.rb:77</a>.</p></dd> +<dt><code>refute_raise</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L82">lib/difects/unit.rb:82</a>.</p></dd> +<dt><code>refute_respond_to</code>(<em>object</em>, <em>query</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L86">lib/difects/unit.rb:86</a>.</p></dd> +<dt><code>refute_same</code>(<em>expected</em>, <em>actual</em>, <em>message</em>=nil)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L72">lib/difects/unit.rb:72</a>.</p></dd> +<dt><code>refute_send</code>(<em>object</em>, <em>query</em>, *<em>args</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L95">lib/difects/unit.rb:95</a>.</p></dd> +<dt><code>refute_throw</code>(<em>symbol</em>, <em>message</em>=nil, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects/unit.rb#L91">lib/difects/unit.rb:91</a>.</p></dd> </dl> <h3 id="difects-long">difects/long</h3> <p>This library emulates Readability by adding the following methods to the <code>DIFECTS</code> module.</p> <dl> -<dt><code>Catch</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>Catch!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>Catch?</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>Describe</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>Describe!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>Error</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>Error!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>Error?</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>False</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>False!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>False?</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>Inform</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>Inform!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>Share</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>Share!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>Share?</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>True</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>True!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> -<dt><code>True?</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>Defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1126">lib/difects.rb:1126</a></p></dd> +<dt><code>Catch</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>Catch!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>Catch?</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>Describe</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>Describe!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>Error</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>Error!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>Error?</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>False</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>False!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>False?</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>Inform</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>Inform!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>Share</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>Share!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>Share?</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>True</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>True!</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> +<dt><code>True?</code>(*<em>args</em>, &amp;<em>block</em>)</dt><dd><p>This method is defined at <a href="http://github.com/sunaku/difects/tree/master/lib/difects.rb#L1124">lib/difects.rb:1124</a>.</p></dd> </dl> <h2 id="EXAMPLES">EXAMPLES</h2> @@ -554,24 +550,83 @@ <pre><code>--- - Wizard: - Preparing spell to defeat mortal foes... - Magician: - Preparing rabbits to pull from hat... - - 14 + - 13 - Calculator: - 3.141592653589793 - - 1 - 2 - 3 - - a - b - c - foo: bar! --- -time: 0.002947349 +time: 0.00290479 </code></pre> +<h3 id="Using-hooks-to-perform-before-and-after-actions">Using hooks to perform before and after actions</h3> + +<p>When the following test is run:</p> + +<pre><code>require 'difects/auto' + +D "outer test" do + D .&lt; { I "(outer hook) before each" } + D .&gt; { I "(outer hook) after each" } + D .&lt;&lt; { I "(outer hook) before all" } + D .&gt;&gt; { I "(outer hook) after all" } + + D "inner test 1" do + D .&lt; { I "(inner hook) before each" } + D .&gt; { I "(inner hook) after each" } + D .&lt;&lt; { I "(inner hook) before all" } + D .&gt;&gt; { I "(inner hook) after all" } + + D "inner test 1.1" do + I "hello world" + end + end + + D "inner test 2" do + I "goodbye world" + end + + D .&lt; { I "(outer hook) before each, again" } + D .&gt; { I "(outer hook) after each, again" } +end +</code></pre> + +<p>DIFECTS will output the following:</p> + +<pre><code>--- +- outer test: + - (outer hook) before all + - (outer hook) before each + - (outer hook) before each, again + - inner test 1: + - (inner hook) before all + - (inner hook) before each + - inner test 1.1: + - hello world + - (inner hook) after each + - (inner hook) after all + - (outer hook) after each + - (outer hook) after each, again + - (outer hook) before each + - (outer hook) before each, again + - inner test 2: + - goodbye world + - (outer hook) after each + - (outer hook) after each, again + - (outer hook) after all +--- +time: 0.007519821 +</code></pre> + <h3 id="Sharing-code-between-tests">Sharing code between tests</h3> <p>When the following test is run:</p> <pre><code>require 'difects/auto' @@ -615,11 +670,11 @@ - Strength is power! - King: - Power is power! --- pass: 3 -time: 0.007106484 +time: 0.007250196 </code></pre> <h3 id="Insulated-and-uninsulated-tests">Insulated and uninsulated tests</h3> <p>When the following test is run:</p> @@ -656,11 +711,11 @@ - a root-level test: - an inner, non-insulated test: - an inner, insulated test: --- pass: 10 -time: 0.007744531 +time: 0.00794053 </code></pre> <h2 id="HACKING">HACKING</h2> <p>This section is meant for people who want to develop DIFECTS's source code.</p> @@ -744,10 +799,33 @@ <h2 id="VERSIONS">VERSIONS</h2> <p>This section contains release notes of current and past releases.</p> +<h3 id="Version-3-0-1-2010-07-25-">Version 3.0.1 (2010-07-25)</h3> + +<p>This release fixes a bug in Ruby 1.8, refactors the code, and better documents +test hooks in the manual.</p> + +<p>Bug fixes:</p> + +<ul> +<li>Ruby 1.8 does not pass value to <code>Hash#delete_if()</code>. All failure details +were being omitted, instead of just the unavailable ones, as a result.</li> +</ul> + + +<p>Housekeeping:</p> + +<ul> +<li><p>Refactor variable values hash calculation and pretty printing logic.</p></li> +<li><p>Put FailureDetails pretty-printing modules into their own namespace.</p></li> +<li><p>Raise error if closest insulated test cannot be not found.</p></li> +<li><p>Describe all test hooks and add example to manual, plus small revisions.</p></li> +</ul> + + <h3 id="Version-3-0-0-2010-07-24-">Version 3.0.0 (2010-07-24)</h3> <p>This release renames the project to "DIFECTS", reduces cruft, improves the presentation and debuggability of assertion failures, and revises the manual.</p> @@ -1157,10 +1235,10 @@ <h2 id="LICENSE">LICENSE</h2> <p>(the ISC license)</p> -<p>Copyright 2009 Suraj N. Kurapati <a href="&#x6d;&#x61;&#105;&#x6c;&#x74;&#111;&#58;&#x73;&#117;&#x6e;&#x61;&#107;&#x75;&#64;&#x67;&#x6d;&#x61;&#x69;&#108;&#46;&#99;&#111;&#109;" data-bare-link="true">&#115;&#117;&#110;&#97;&#107;&#117;&#x40;&#x67;&#x6d;&#97;&#x69;&#x6c;&#x2e;&#99;&#x6f;&#x6d;</a></p> +<p>Copyright 2009 Suraj N. Kurapati <a href="&#109;&#x61;&#105;&#x6c;&#x74;&#x6f;&#58;&#x73;&#117;&#110;&#x61;&#107;&#x75;&#64;&#x67;&#109;&#97;&#x69;&#x6c;&#x2e;&#x63;&#x6f;&#x6d;" data-bare-link="true">&#x73;&#117;&#110;&#97;&#107;&#117;&#x40;&#103;&#109;&#x61;&#105;&#x6c;&#46;&#x63;&#x6f;&#109;</a></p> <p>Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.</p>