<?xml version="1.0" encoding="UTF-8"?>
<page xmlns="http://api.springnote.com">
  <identifier type="integer">1994</identifier>
  <title>Heckle</title>
  <relation_is_part_of type="integer">2123</relation_is_part_of>
  <date_modified type="datetime">2007-11-21T16:04:14Z</date_modified>
  <uri>http://deepblue.springnote.com/pages/1994</uri>
  <date_created type="datetime">2007-01-19T16:45:25Z</date_created>
  <source>&lt;h1&gt;&#53580;&#49828;&#53944;&#47484; &#53580;&#49828;&#53944;&#54620;&#45796; - &#47336;&#48708; &#49464;&#46356;&#51608;&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;"RSpec/Test::Unit is your safety belt. RCov is your airbag. Heckle is your helmet, neck brace and full fireproof suit."&lt;/p&gt;
&lt;p&gt;"&#47336;&#48708; &#54532;&#47196;&#44536;&#47000;&#48141;&#51012; &#54616;&#45716;&#45936; RSpec&#51060; &#50504;&#51204;&#48296;&#53944;, RCov&#47484; &#50640;&#50612;&#48177;&#51060;&#46972;&#44256; &#54620;&#45796;&#47732;, Heckle&#51008; &#54764;&#47719;&#44284; &#47785; &#48372;&#54840;&#45824;, &#50756;&#48317;&#54620; &#48169;&#54868;&#48373;&#51077;&#45768;&#45796;."&amp;nbsp; -- &lt;a href="http://blog.aslakhellesoy.com/articles/2006/12/19/heckling-with-rspec"&gt;Aslak Hellesoy&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Heckle&#51008; Ruby2Ruby&#50752; ParseTree&#47484; &#51060;&#50857;&#54644; &#47336;&#48708; &#53076;&#46300;&#47484; &#48148;&#45001;&#45768;&#45796;. &#44536;&#47111;&#45796;&#47732;, &#53580;&#49828;&#53944;&#45716; &#48152;&#46300;&#49884; &#49892;&#54056;&#54644;&#50556;&#54633;&#45768;&#45796;. &#47564;&#51068; &#53580;&#49828;&#53944;&#44032; &#49457;&#44277;&#54620;&#45796;&#47732;, &#44536; &#53580;&#49828;&#53944;&#50640;&#45716; '&#48712;&#53960;'&#51060; &#51080;&#45716; &#44163;&#51077;&#45768;&#45796;. &#51060;&#47088; &#49885;&#51032; &#53076;&#46300; &#48320;&#54805;&#51012; &#53685;&#54620; &#53580;&#49828;&#53944;&#45716; &#47336;&#48708; &#53076;&#46300;&#47484; &#53945;&#55176;&#45208; &#53580;&#49828;&#53944;&#47484; &#45908;&#50865; &#44204;&#44256;&#54616;&#44172; &#54644;&#51469;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&#44396;&#44396;&#45800; &#50696;&#51228;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;gugu_spec.rb&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;context "&#44396;&#44396;&#45800;" do&lt;br /&gt;
&amp;nbsp; specify "5&#45800;&#51012; &#51096; &#52636;&#47141;&#54620;&#45796;" do&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.dan.to_a.should_be_eql [5,10,15,20,25,30,35,40,45]&lt;br /&gt;
&amp;nbsp; end&lt;br /&gt;
end&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;gugu.rb&lt;/li&gt;
&lt;/ul&gt;
&lt;ol class="code"&gt;
&lt;li&gt;class Fixnum&lt;br /&gt;
&amp;nbsp; def dan&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; raise if self &amp;lt; 2 || self &amp;gt; 9&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; (1..9).map{|i| self*i}&lt;br /&gt;
&amp;nbsp; end&lt;br /&gt;
end&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#49892;&#54665; &#44208;&#44284;:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;[deepblue:ruby/test/heckle] deepblue% spec gugu_spec.rb --heckle Fixnum.dan . Finished in 0.000549 seconds 1 specification, 0 failures **********************************************************************&lt;br /&gt;
***&amp;nbsp; Fixnum#dan loaded with 4 possible mutations&lt;br /&gt;
********************************************************************** 4 mutations remaining...&lt;br /&gt;
3 mutations remaining...&lt;br /&gt;
2 mutations remaining...&lt;br /&gt;
1 mutations remaining... The following mutations didn't cause test failures: def dan&lt;br /&gt;
&amp;nbsp; raise if ((self &amp;lt; -5) or (self &amp;gt; 9))&lt;br /&gt;
&amp;nbsp; (1..9).map do |i|&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; (self * i)&lt;br /&gt;
&amp;nbsp; end&lt;br /&gt;
end def dan&lt;br /&gt;
&amp;nbsp; raise if ((self &amp;lt; 2) or (self &amp;gt; 14))&lt;br /&gt;
&amp;nbsp; (1..9).map do |i|&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; (self * i)&lt;br /&gt;
&amp;nbsp; end&lt;br /&gt;
end&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#53580;&#49828;&#53944;&#44032; &#48512;&#51313;&#54632;&#51012; &#50508; &#49688; &#51080;&#45796;. &#53580;&#49828;&#53944;&#47484; &#48372;&#44053;&#54616;&#51088;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;context "&#44396;&#44396;&#45800;" do&lt;br /&gt;
&amp;nbsp; specify "5&#45800;&#51012; &#51096; &#52636;&#47141;&#54620;&#45796;" do&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.dan.to_a.should_be_eql [5,10,15,20,25,30,35,40,45]&lt;br /&gt;
&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp; specify "&#50864;&#47532;&#45208;&#46972; &#44396;&#44396;&#45800;&#51008; 2&#45800;&#48512;&#53552; 9&#45800;&#44620;&#51648;&#49104;&#51060;&#45796;" do&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; lambda{ 1.dan }.should_raise&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; lambda{ 10.dan }.should_raise&lt;br /&gt;
&amp;nbsp; end&lt;br /&gt;
end&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;[deepblue:ruby/test/heckle] deepblue% spec gugu_spec.rb --heckle Fixnum.dan .. Finished in 0.000841 seconds 2 specifications, 0 failures **********************************************************************&lt;br /&gt;
***&amp;nbsp; Fixnum#dan loaded with 4 possible mutations&lt;br /&gt;
********************************************************************** 4 mutations remaining...&lt;br /&gt;
3 mutations remaining...&lt;br /&gt;
2 mutations remaining...&lt;br /&gt;
1 mutations remaining... The following mutations didn't cause test failures: def dan&lt;br /&gt;
&amp;nbsp; raise if ((self &amp;lt; 2) or (self &amp;gt; 6))&lt;br /&gt;
&amp;nbsp; (1..9).map do |i|&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; (self * i)&lt;br /&gt;
&amp;nbsp; end&lt;br /&gt;
end&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#50500;&#51649;&#46020; &#48512;&#51313;&#54616;&#45796;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;context "&#44396;&#44396;&#45800;" do&lt;br /&gt;
&amp;nbsp; specify "5&#45800;&#51012; &#51096; &#52636;&#47141;&#54620;&#45796;" do&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.dan.to_a.should_be_eql [5,10,15,20,25,30,35,40,45]&lt;br /&gt;
&amp;nbsp; end&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp; specify "&#50864;&#47532;&#45208;&#46972; &#44396;&#44396;&#45800;&#51008; 2&#45800;&#48512;&#53552; 9&#45800;&#44620;&#51648;&#49104;&#51060;&#45796;" do&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; lambda{ 1.dan }.should_raise&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; lambda{ 10.dan }.should_raise &amp;nbsp;&amp;nbsp;&amp;nbsp; (2..9).each do |i|&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lambda{ i.dan }.should_not_raise&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;
&amp;nbsp; end&lt;br /&gt;
end&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;[deepblue:ruby/test/heckle] deepblue% spec gugu_spec.rb --heckle Fixnum.dan .. Finished in 0.000974 seconds 2 specifications, 0 failures **********************************************************************&lt;br /&gt;
***&amp;nbsp; Fixnum#dan loaded with 4 possible mutations&lt;br /&gt;
********************************************************************** 4 mutations remaining...&lt;br /&gt;
3 mutations remaining...&lt;br /&gt;
2 mutations remaining...&lt;br /&gt;
1 mutations remaining...&lt;br /&gt;
No mutants survived. Cool!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#46300;&#46356;&#50612; &#49457;&#44277;&#54664;&#45796;!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&#52280;&#44256; &#51088;&#47308;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://jester.sourceforge.net/"&gt;http://jester.sourceforge.net/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://del.icio.us/byblue/heckle"&gt;http://del.icio.us/byblue/heckle&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</source>
  <rights nil="true"></rights>
  <creator>deepblue</creator>
  <contributor_modified>deepblue</contributor_modified>
  <version type="integer">6</version>
  <tags></tags>
</page>
