<?xml version="1.0" encoding="UTF-8"?>

<rss version='2.0' 
     xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
     xmlns:doap="http://usefulinc.com/ns/doap#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

    <channel>
        <!-- This XML Feed shows details for the page unit 
             and everything recently tagged unit -->
        <creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/
          </creativeCommons:license>
        <title>unit on SWiK</title>
        <doap:name>unit</doap:name>
        <doap:description></doap:description>
        <description></description> 
	  <!-- see doap:description for full description -->
        <link>http://swik.net/unit</link>
        <doap:homepage></doap:homepage>
        
        <pubDate></pubDate>
        <lastBuildDate></lastBuildDate>
            
        <item>
            <title>lincolns hires outfit all london airports covered</title>
            <link>http://swik.net/User:mangul96/mercedes+hire/lincolns+hires+outfit+all+london+airports+covered/cdvpf</link>
            <description>
</description>
            
            <pubDate>Sat, 06 Sep 2008 03:59:35 -0700</pubDate>
        </item>
            
        <item>
            <title>mercedes hire</title>
            <link>http://swik.net/User:dipp73/mercedes+hire</link>
            <description>
</description>
                        <category>setup</category>
            <category>rentals</category>
            <category>unit</category>
            <category>Hummer</category>
            <category>industries</category>
            <category>outfit</category>

            <pubDate>Sat, 06 Sep 2008 03:10:26 -0700</pubDate>
        </item>
            
        <item>
            <title>search engine placement company</title>
            <link>http://swik.net/User:mangul96/search+engine+placement+company</link>
            <description>
</description>
                        <category>Engine</category>
            <category>Google</category>
            <category>unit</category>
            <category>10</category>
            <category>outfit</category>

            <pubDate>Sat, 06 Sep 2008 01:57:19 -0700</pubDate>
        </item>
            
        <item>
            <title>limo reservig for books many destinations catered for</title>
            <link>http://swik.net/User:pl50ay/http%3A%2F%2Fwww.london-airport-shuttle.co.uk%2Fcontact.html/limo+reservig+for+books+many+destinations+catered+for/cdvdn</link>
            <description>
</description>
            
            <pubDate>Sat, 06 Sep 2008 00:02:55 -0700</pubDate>
        </item>
            
        <item>
            <title>Limo London</title>
            <link>http://swik.net/User:mangul96/Limo+London</link>
            <description>
</description>
                        <category>Book</category>
            <category>unit</category>
            <category>association</category>
            <category>servicing</category>
            <category>lincolns</category>

            <pubDate>Fri, 05 Sep 2008 23:56:58 -0700</pubDate>
        </item>
            
        <item>
            <title>search engine placement company</title>
            <link>http://swik.net/User:paus13422/search+engine+placement+company/search+engine+placement+company/cdu6e</link>
            <description>
</description>
            
            <pubDate>Fri, 05 Sep 2008 21:47:43 -0700</pubDate>
        </item>
            
        <item>
            <title>heathrow Airport Transfer</title>
            <link>http://swik.net/User:soon60/heathrow+Airport+Transfer</link>
            <description>&lt;p&gt;8 seater renting operation anniversary specialist&lt;/p&gt;
</description>
                        <category>unit</category>
            <category>coach</category>
            <category>supplier</category>
            <category>limousine</category>
            <category>renter</category>

            <pubDate>Fri, 05 Sep 2008 19:48:12 -0700</pubDate>
        </item>
            
        <item>
            <title>Hummer Limo</title>
            <link>http://swik.net/User:mangul96/Hummer+Limo</link>
            <description>&lt;p&gt;driver booking limited company luton stansted heathrow gatwick&lt;/p&gt;
</description>
                        <category>operation</category>
            <category>unit</category>
            <category>buses</category>
            <category>Renters</category>

            <pubDate>Fri, 05 Sep 2008 01:49:19 -0700</pubDate>
        </item>
            
        <item>
            <title>London Airport Transfer</title>
            <link>http://swik.net/User:mangul96/London+Airport+Transfer</link>
            <description>&lt;p&gt;driver rental industries at heathrow and gatwick&lt;/p&gt;
</description>
                        <category>group</category>
            <category>unit</category>
            <category>organisation</category>
            <category>lease</category>
            <category>minibuses</category>

            <pubDate>Thu, 04 Sep 2008 22:59:33 -0700</pubDate>
        </item>
            
        <item>
            <title>scalacheck - A BDD Library for Scala</title>
            <link>http://swik.net/scala/del.icio.us%2Ftag%2Fscala/scalacheck+-+A+BDD+Library+for+Scala/cdpic</link>
            <description></description>
            
            <pubDate>Thu, 04 Sep 2008 07:02:42 -0700</pubDate>
        </item>
            
        <item>
            <title>Dr Nic &quot; Unit Testing iPhone apps with Ruby: rbiphonetest</title>
            <link>http://swik.net/iphone/deli.cio.us%2Ftags%2Fiphone/Dr+Nic+%22+Unit+Testing+iPhone+apps+with+Ruby%3A+rbiphonetest/cdbna</link>
            <description></description>
            
            <pubDate>Sun, 31 Aug 2008 18:01:42 -0700</pubDate>
        </item>
            
        <item>
            <title>The Best iPhone 3g Source Unit for Your Car, The Pioneer DEH-600UB</title>
            <link>http://swik.net/iphone/deli.cio.us%2Ftags%2Fiphone/The+Best+iPhone+3g+Source+Unit+for+Your+Car%2C+The+Pioneer+DEH-600UB/cc7is</link>
            <description></description>
            
            <pubDate>Sat, 30 Aug 2008 03:01:16 -0700</pubDate>
        </item>
            
        <item>
            <title>http://www.hirelimolondon.co.uk/index.html</title>
            <link>http://swik.net/User:reno74/http%3A%2F%2Fwww.hirelimolondon.co.uk%2Findex.html</link>
            <description>
</description>
                        <category>books</category>
            <category>for</category>
            <category>unit</category>
            <category>renting</category>
            <category>minibus</category>
            <category>reserving</category>

            <pubDate>Fri, 29 Aug 2008 20:41:36 -0700</pubDate>
        </item>
            
        <item>
            <title>Eclipse 3.3 - New and Noteworthy</title>
            <link>http://swik.net/Eclipse/del.icio.us%2Ftag%2Feclipse/Eclipse+3.3+-+New+and+Noteworthy/cc4zl</link>
            <description>This is the documentation of  Eclipse  3.3 for users java</description>
            
            <pubDate>Fri, 29 Aug 2008 08:59:38 -0700</pubDate>
        </item>
            
        <item>
            <title>How to unit-test code that interacts with a database</title>
            <link>http://swik.net/MySQL/Planet+MySQL/How+to+unit-test+code+that+interacts+with+a+database/ccybm</link>
            <description>&lt;p&gt;I got some interesting comments on my previous article about &lt;a href=&quot;http://www.xaprb.com/blog/2008/08/18/how-maatkit-benefits-from-test-driven-development/&quot;&gt;unit testing Maatkit&lt;/a&gt;, including echoes of my own conversion to the unit-testing religion.  One of the objections I&amp;#8217;ve heard a lot about unit-testing is how it&amp;#8217;s impossible to test code that talks to a database.  &amp;#8220;It&amp;#8217;s too hard,&amp;#8221; they say.  &amp;#8220;Oh, it&amp;#8217;s easy to test a module that calculates a square root, but a database?  Way too much work!&amp;#8221;&lt;/p&gt;

&lt;h3&gt;Is it really impossible or even hard?&lt;/h3&gt;

&lt;p&gt;I disagree.  In one of my previous articles I said &lt;a href=&quot;http://www.rimmkaufman.com/&quot;&gt;The Rimm-Kaufman Group&lt;/a&gt;, my previous employer, has a comprehensive unit-test suite.  When I say comprehensive I mean it: database interaction is fully tested, too.  I know because I was heavily involved in building it.  Even extremely complex things like big reports that are generated from lots of data are tested.  And believe me, sharding the databases would have been much harder without complete code coverage.  It&amp;#8217;s really not that complicated to unit-test against a database, and it&amp;#8217;s so worth it.  Here are some hints about how you can do this.&lt;/p&gt;

&lt;p&gt;There are many ways to do it, but I&amp;#8217;ll just describe the basics of the system I helped build.  There are several moving parts to the test suite (&amp;#8221;&lt;a href=&quot;http://c2.com/cgi/wiki?SmokeTest&quot;&gt;smoke&lt;/a&gt;&amp;#8220;), but one of them sets a magical environment variable.  And then, all code that connects to a database server magically gets back a different database connection from the create_me_a_connection() function.  This is because there is a database connection abstraction library that respects the environment variable.  It&amp;#8217;s really pretty simple for the most part; instead of doing DBI-&gt;connect(&amp;#8230;) you just call this function, which is a thin wrapper that hands back a connection object.&lt;/p&gt;

&lt;p&gt;This wrapper is itself unit-tested thoroughly, too.  This ensures that when some code is being run from a test, it cannot (I mean cannot!) connect to a production database, and vice versa.  There are some conventions about production and test servers that make sure the abstraction library can tell for sure.  If there&amp;#8217;s any confusion, of course, it will die in a non-recoverable way.  Safety first.&lt;/p&gt;

&lt;h3&gt;Building a good development environment&lt;/h3&gt;

&lt;p&gt;Just as each developer has their own copy of the code from version control, each developer has their own private database server running on the dev machine.  There are some simple conventions that make this possible: Unix user ID plus a constant for the port number, etc.  It&amp;#8217;s really quite easy.  The private database server is a slightly modified version of &lt;a href=&quot;https://launchpad.net/mysql-sandbox&quot;&gt;Giuseppe Maxia&amp;#8217;s MySQL Sandbox tool&lt;/a&gt;.  It can be torn down and set up afresh as desired.  It is wiped clean and re-filled at the start of every test, with a small, tightly focused dataset carefully chosen to represent the conditions the code is supposed to work with.  (Each test has its own dataset).&lt;/p&gt;

&lt;p&gt;If this sounds like a system that can&amp;#8217;t work on a large scale, well, it does.  That&amp;#8217;s the secret sauce that I won&amp;#8217;t reveal in this post.  (It&amp;#8217;s my past employer after all, and I can&amp;#8217;t go revealing everything about them can I?)  You just have to be smart about it.  When a database is central to your business, you either figure out how to get this right, or you pay the consequences in lost time and poor code quality.&lt;/p&gt;

&lt;p&gt;I and the other developers there (another secret: it&amp;#8217;s a small team; &lt;a href=&quot;http://www.craigslist.org/&quot;&gt;small teams build great things&lt;/a&gt;) built several quick utilities to help develop unit tests against a database.  There are utilities to get a minimal necessary dataset for testing and dump it into a file that can be loaded by the test.  There are utilities that can migrate schemas and update the tests to match the schema changes.  And so on, and so on.  This is possible because of careful planning for testability, and really smart things like super-consistent and sensible naming conventions for database objects.  (Ruby On Rails owes a lot of its success to simple things like this, too.  Conventions are really powerful.)  Maybe I&amp;#8217;ll write about the database naming conventions some other time &amp;#8212; I have to credit Alan Rimm-Kaufman a lot for designing those conventions.  It was a stroke of genius.&lt;/p&gt;

&lt;h3&gt;Things to avoid&lt;/h3&gt;

&lt;p&gt;There are several things I &lt;em&gt;do not&lt;/em&gt; recommend doing when you unit-test code that talks to a database.  I&amp;#8217;ll just mention a couple:&lt;/p&gt;

&lt;ul&gt;Don&amp;#8217;t &lt;a href=&quot;http://c2.com/cgi/wiki?MockObject&quot;&gt;mock&lt;/a&gt; anything!  In general I think mocking is the devil.  Most of the mock objects I&amp;#8217;ve ever seen reflected a propensity to &lt;a href=&quot;http://www.xaprb.com/blog/2006/05/16/how-to-refactor-without-rewriting-unit-tests/&quot;&gt;test an implementation instead of a behavior&lt;/a&gt;, which is also the devil.  Write all your code to test a test instance of something real, and do not mock up a database to test against.  It is a rabbit-hole that you will not emerge from easily.&lt;/li&gt;
&lt;li&gt;Never let a test connect to a production database.  Never, ever.  Worlds of hurt will follow.  Not only are you risking your production data, but what about the risk to your code?  You&amp;#8217;re testing against things that will almost certainly change and break your tests; and you&amp;#8217;re possibly polluting your live data with testing data and/or changing live data from the tests.&lt;/li&gt;
&lt;li&gt;I also recommend developing unit tests for your current database functionality if you&amp;#8217;re thinking about changing it much.  &lt;a href=&quot;http://dev.mysql.com/doc/en/server-sql-mode.html&quot;&gt;Don&amp;#8217;t like MySQL&amp;#8217;s lax error handling?  Plan to set the SQL_MODE to something stricter?&lt;/a&gt;  Dive into that database abstraction library and make your tests run in strict mode first by setting SQL_MODE on every new connection that&amp;#8217;s created when running inside a test; fix all the breakage in the test suite; feel sure that your code isn&amp;#8217;t going to break in production.  That was easy!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Summary&lt;/h3&gt;

&lt;p&gt;Once your creative juices get flowing, you&amp;#8217;ll see tons of places your unit test suite can help you out.&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;re in the Oracle or SQL Server world, or any other world where you can&amp;#8217;t just set up and discard database instances at will due to licensing problems, you&amp;#8217;re going to have to be a little more inventive.  But you can still do it.  (Don&amp;#8217;t you wish you&amp;#8217;d chosen &lt;a href=&quot;http://www.fsf.org/&quot;&gt;Freedom&lt;/a&gt;?)  And unit tests are just as beneficial for apps based on Oracle as they are for MySQL.&lt;/p&gt;

&lt;p&gt;Have fun!  Go forth and test some more!&lt;/p&gt;&lt;a href=&quot;http://www.xaprb.com/blog/tag/mysql/&quot; rel=&quot;tag&quot;&gt;mysql&lt;/a&gt;, &lt;a href=&quot;http://www.xaprb.com/blog/tag/test-driven-development/&quot; rel=&quot;tag&quot;&gt;Test Driven Development&lt;/a&gt;, &lt;a href=&quot;http://www.xaprb.com/blog/tag/testing-a-database/&quot; rel=&quot;tag&quot;&gt;testing a database&lt;/a&gt;, &lt;a href=&quot;http://www.xaprb.com/blog/tag/the-rimm-kaufman-group/&quot; rel=&quot;tag&quot;&gt;The Rimm Kaufman Group&lt;/a&gt;, &lt;a href=&quot;http://www.xaprb.com/blog/tag/unit-testing/&quot; rel=&quot;tag&quot;&gt;unit testing&lt;/a&gt;</description>
            
            <pubDate>Tue, 19 Aug 2008 19:03:09 -0700</pubDate>
        </item>
            
        <item>
            <title>&quot; Blog Archive &quot; JMeter</title>
            <link>http://swik.net/JMeter/del.icio.us%2Ftag%2Fjmeter/%22+Blog+Archive+%22+JMeter/ccayq</link>
            <description></description>
            
            <pubDate>Tue, 12 Aug 2008 10:04:33 -0700</pubDate>
        </item>
            
        <item>
            <title>MockMe: A new JavaScript mocking framework</title>
            <link>http://swik.net/Ajax/Ajaxian/MockMe%3A+A+new+JavaScript+mocking+framework/cb6wg</link>
            <description>&lt;p&gt;Johannes Link is an Agile fellow who wasn&#039;t 100% happy with the existing JavaScript unit test frameworks, and he &lt;a href=&quot;http://blog.johanneslink.net/2008/08/08/ajax-travelogue-part-6-mocking-in-javascript/&quot;&gt;explained why&lt;/a&gt;. He gives an example:&lt;/p&gt;
&lt;div class=&quot;igBar&quot;&gt;&lt;a href=&quot;javascriptshowCodeTxt(&#039;javascript-30&#039;);&quot;&gt;PLAIN TEXT&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;syntax_hilite&quot;&gt;&lt;span style=&quot;color:#000000; font-weight:bold;&quot;&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id=&quot;javascript-30&quot;&gt;
&lt;div class=&quot;javascript&quot;&gt;
&lt;ol&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; testDoubleSpeaker: &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;with&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; actualMsg = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;null&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; mockSay = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;msg&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; actualMsg = msg;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; Speaker.&lt;span style=&quot;color: #006600;&quot;&gt;say&lt;/span&gt; = mockSay;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; DoubleSpeaker.&lt;span style=&quot;color: #006600;&quot;&gt;say&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;oops&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; assertEqual&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;oopsoops&#039;&lt;/span&gt;, actualMsg&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;It works, but he discusses how this changes the global world, which is a bad thing. Would it be nicer to spy and end up with:&lt;/p&gt;
&lt;div class=&quot;igBar&quot;&gt;&lt;a href=&quot;javascriptshowCodeTxt(&#039;javascript-31&#039;);&quot;&gt;PLAIN TEXT&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;syntax_hilite&quot;&gt;&lt;span style=&quot;color:#000000; font-weight:bold;&quot;&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id=&quot;javascript-31&quot;&gt;
&lt;div class=&quot;javascript&quot;&gt;
&lt;ol&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; testDoubleSpeaker: &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;with&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; mock&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;Speaker&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;andDo&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; DoubleSpeaker.&lt;span style=&quot;color: #006600;&quot;&gt;say&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;oops&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; verify&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;Speaker.&lt;span style=&quot;color: #006600;&quot;&gt;say&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;oopsoops&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;,&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This is an example from his new framework, &lt;a href=&quot;http://johanneslink.net/projects/mockme.html&quot;&gt;MockMe&lt;/a&gt;, which has the main features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The basic granularity of mocking should be the function. If I want to, I can fake the behaviour of a single function without influencing the rest (of an object or a prototype or the global namespace or whatever).&lt;/li&gt;
&lt;li&gt;Most of the time, spying is a better idea than mocking because it’s simpler. Spying basically means that, instead of specifying the expected interaction with your mock spy object before doing the test, you use the mock spy object to spy into the interaction as it happens and verify that afterwards. In that respect I borrowed heavily from mockito, a spying framework that’s gaining more and more attention in the Java world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A few other examples:&lt;/p&gt;
&lt;div class=&quot;igBar&quot;&gt;&lt;a href=&quot;javascriptshowCodeTxt(&#039;javascript-32&#039;);&quot;&gt;PLAIN TEXT&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;syntax_hilite&quot;&gt;&lt;span style=&quot;color:#000000; font-weight:bold;&quot;&gt;JAVASCRIPT:&lt;/span&gt;
&lt;div id=&quot;javascript-32&quot;&gt;
&lt;div class=&quot;javascript&quot;&gt;
&lt;ol&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;when&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;f&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;in&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;thenReturn&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;out&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;assertEqual&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;out&#039;&lt;/span&gt;, f&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;in&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;when&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;f&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;hello&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;thenReturn&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;yeah&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;assertEqual&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;yeah&#039;&lt;/span&gt;, f&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;hello&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;when&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;f&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;any&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;thenReturn&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;yeah&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;assertEqual&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;yeah&#039;&lt;/span&gt;, f&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;verify&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;times&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;, f&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;//succeeds&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;useMockerFor&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;mocker&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; mocker.&lt;span style=&quot;color: #006600;&quot;&gt;within&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;MyObject&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;mock&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;f1&#039;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; when&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;MyObject.&lt;span style=&quot;color: #006600;&quot;&gt;f1&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;thenReturn&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; assertEqual&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;7&lt;/span&gt;, MyObject.&lt;span style=&quot;color: #006600;&quot;&gt;f2&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// Here everything you mocked will automatically be restored&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-weight: bold;color:#26536A;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;assertEqual&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;3&lt;/span&gt;, MyObject.&lt;span style=&quot;color: #006600;&quot;&gt;f2&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color:#006600; font-weight:bold;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;/div&gt;
&lt;/li&gt;
&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;&quot;&gt;
&lt;div style=&quot;color:#000000; font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=fAa93K&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=fAa93K&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=v5uQaK&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=v5uQaK&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/ajaxian?a=i6aw6k&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/ajaxian?i=i6aw6k&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Mon, 11 Aug 2008 07:13:03 -0700</pubDate>
        </item>
            
        <item>
            <title>specs - Google Code</title>
            <link>http://swik.net/scala/del.icio.us%2Ftag%2Fscala/specs+-+Google+Code/cb2b8</link>
            <description></description>
            
            <pubDate>Sat, 09 Aug 2008 16:12:11 -0700</pubDate>
        </item>
            
        <item>
            <title>http://www.w3.org/2007/ont/unit</title>
            <link>http://swik.net/W3C/Del.icio.us+W3C+Tags/http%3A%2F%2Fwww.w3.org%2F2007%2Font%2Funit/cb09e</link>
            <description></description>
            
            <pubDate>Sat, 09 Aug 2008 07:09:17 -0700</pubDate>
        </item>
            
        <item>
            <title>Spring-Loaded</title>
            <link>http://swik.net/Spring/del.icio.us%2Ftag%2FSpringFramework/Spring-Loaded/cbuvd</link>
            <description></description>
            
            <pubDate>Thu, 07 Aug 2008 13:18:49 -0700</pubDate>
        </item>
            
        <item>
            <title>Cobertura Command Line Reference</title>
            <link>http://swik.net/cobertura/del.icio.us+tag%2Fcobertura/Cobertura+Command+Line+Reference/cbub4</link>
            <description></description>
            
            <pubDate>Thu, 07 Aug 2008 13:12:59 -0700</pubDate>
        </item>
            
        <item>
            <title>Cobertura Command Line Reference</title>
            <link>http://swik.net/Maven/del.icio.us%2Ftag%2Fmaven/Cobertura+Command+Line+Reference/cbjlj</link>
            <description></description>
            
            <pubDate>Sat, 26 Jul 2008 11:00:34 -0700</pubDate>
        </item>
            
        <item>
            <title>Spring Tips: Unit test with Spring Dynamic Modules</title>
            <link>http://swik.net/User:jeyrb/del.icio.us%2Fsubscriptions%2Fjey/Spring+Tips%3A+Unit+test+with+Spring+Dynamic+Modules/ca90v</link>
            <description></description>
            
            <pubDate>Wed, 23 Jul 2008 08:54:40 -0700</pubDate>
        </item>
            
        <item>
            <title>Spring Tips: Unit test with Spring Dynamic Modules</title>
            <link>http://swik.net/OSGi/del.icio.us%2Ftag%2FOSGi/Spring+Tips%3A+Unit+test+with+Spring+Dynamic+Modules/ca9z8</link>
            <description></description>
            
            <pubDate>Wed, 23 Jul 2008 08:54:31 -0700</pubDate>
        </item>
            
        <item>
            <title>Ruby Programming/Unit testing - Wikibooks, collection of open-content textbooks</title>
            <link>http://swik.net/Watir/del.icio.us+tag%2Fwatir/Ruby+Programming%2FUnit+testing+-+Wikibooks%2C+collection+of+open-content+textbooks/caxzp</link>
            <description></description>
            
            <pubDate>Sun, 20 Jul 2008 22:47:37 -0700</pubDate>
        </item>
            
        <item>
            <title>google-toolbox-for-mac - Google Code</title>
            <link>http://swik.net/iphone/deli.cio.us%2Ftags%2Fiphone/google-toolbox-for-mac+-+Google+Code/caxvd</link>
            <description></description>
            
            <pubDate>Sun, 20 Jul 2008 21:47:28 -0700</pubDate>
        </item>
            
        <item>
            <title>Unit Testing C++ Programs using CppUnit in Eclipse IDE on Windows</title>
            <link>http://swik.net/Eclipse/del.icio.us%2Ftag%2Feclipse/Unit+Testing+C%2B%2B+Programs+using+CppUnit+in+Eclipse+IDE+on+Windows/causl</link>
            <description></description>
            
            <pubDate>Sat, 19 Jul 2008 12:45:08 -0700</pubDate>
        </item>
            
        <item>
            <title>Ruby Programming/Unit testing - Wikibooks, collection of open-content textbooks</title>
            <link>http://swik.net/opensource/del.icio.us+tag%2Fopensource/Ruby+Programming%2FUnit+testing+-+Wikibooks%2C+collection+of+open-content+textbooks/caqtm</link>
            <description>As in other languages, Ruby provides a framework for setting up, organizing, and running tests called Test::Unit.</description>
            
            <pubDate>Fri, 18 Jul 2008 08:53:33 -0700</pubDate>
        </item>
            
        <item>
            <title>Stun Gun with Flashlight!</title>
            <link>http://swik.net/User:zedomax/Zedomax/Stun+Gun+with+Flashlight%21/cap7t</link>
            <description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-8185 aligncenter&quot; title=&quot;stun-gun-with-flashlight&quot; src=&quot;http://zedomax.com/blog/wp-content/uploads/2008/07/stun-gun-with-flashlight.jpg&quot; alt=&quot;Stun Gun with Flashlight!&quot; width=&quot;250&quot; height=&quot;152&quot;/&gt;&lt;/p&gt;
&lt;p&gt;Definitely in today&amp;#8217;s society, you might want to consider getting a &lt;a href=&quot;http://www.spygadgets.com/Merchant2/merchant.mvc?Screen=PROD&amp;amp;Store_Code=1&amp;amp;Product_Code=KL209&quot;&gt;Stun Gun&lt;/a&gt; to protect yourself.  Of course, a gun can do the same job but it may kill someone while the Stun Gun doesn&amp;#8217;t.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: Arial,Helvetica;&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana; font-size: x-small;&quot;&gt;This Stun Gun is made of high quality ABS  		engineered plastic, this unit functions as a very powerful high voltage  		(200K) shock generator and a extremely bright flashlight in a very small  		and light weight package. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: Verdana; font-size: x-small;&quot;&gt;Very powerful and loud discharge will  		surely scare away any potential attacker. &lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;http://www.spygadgets.com/Merchant2/merchant.mvc?Screen=PROD&amp;amp;Store_Code=1&amp;amp;Product_Code=KL209&quot;&gt;via spygadgets&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Brought to you by: &lt;a href=&quot;http://zedomax.com/blog&quot;&gt;Zedomax.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://zedomax.com/blog/2008/07/18/stun-gun-with-flashlight/&quot;&gt;Stun Gun with Flashlight!&lt;/a&gt;&lt;/p&gt;

	&lt;span style=&quot;display:none&quot;&gt;&lt;a href=&quot;http://zedomax.com/blog/tag/attacker/&quot; title=&quot;attacker&quot; rel=&quot;tag&quot;&gt;attacker&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/bright-flashlight/&quot; title=&quot;bright flashlight&quot; rel=&quot;tag&quot;&gt;bright flashlight&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/ct/&quot; title=&quot;Consumer&quot; rel=&quot;tag&quot;&gt;Consumer&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/cool/&quot; title=&quot;Cool&quot; rel=&quot;tag&quot;&gt;Cool&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/ct/gadgets/&quot; title=&quot;Gadgets&quot; rel=&quot;tag&quot;&gt;Gadgets&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/high-quality/&quot; title=&quot;high quality&quot; rel=&quot;tag&quot;&gt;high quality&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/high-voltage/&quot; title=&quot;high voltage&quot; rel=&quot;tag&quot;&gt;high voltage&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/job/&quot; title=&quot;job&quot; rel=&quot;tag&quot;&gt;job&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/light-weight-package/&quot; title=&quot;light weight package&quot; rel=&quot;tag&quot;&gt;light weight package&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/shock/&quot; title=&quot;shock&quot; rel=&quot;tag&quot;&gt;shock&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/stun-gun/&quot; title=&quot;stun gun&quot; rel=&quot;tag&quot;&gt;stun gun&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/category/ct/gadgets/stun-guns/&quot; title=&quot;Stun Guns&quot; rel=&quot;tag&quot;&gt;Stun Guns&lt;/a&gt;, &lt;a href=&quot;http://zedomax.com/blog/tag/unit-functions/&quot; title=&quot;unit functions&quot; rel=&quot;tag&quot;&gt;unit functions&lt;/a&gt;&lt;/span&gt;

	&lt;h3&gt;Related posts&lt;/h3&gt;
	&lt;ul class=&quot;st-related-posts&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;http://zedomax.com/blog/2008/07/17/tampon-stun-gun/&quot; title=&quot;Tampon Stun Gun! (July 17, 2008)&quot;&gt;Tampon Stun Gun!&lt;/a&gt; (2)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://zedomax.com/blog/2008/06/03/zedomaxnet-web20-crunch/&quot; title=&quot;Zedomax.Net Web2.0 Crunch&amp;#8230; (June 3, 2008)&quot;&gt;Zedomax.Net Web2.0 Crunch&amp;#8230;&lt;/a&gt; (0)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://zedomax.com/blog/2007/05/21/zedomax-maker-faire-2007-coverage-thanks-for-watching/&quot; title=&quot;Zedomax Maker Faire 2007 Coverage - Thanks for watching! (May 21, 2007)&quot;&gt;Zedomax Maker Faire 2007 Coverage - Thanks for watching!&lt;/a&gt; (0)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://zedomax.com/blog/2008/01/24/world-record-john-chow-is-the-blogging-seinfeld-he-makes-money-making-fun-of-the-internet/&quot; title=&quot;World Record - John Chow is the Blogging Seinfeld?  He makes money making fun of the internet! (January 24, 2008)&quot;&gt;World Record - John Chow is the Blogging Seinfeld?  He makes money making fun of the internet!&lt;/a&gt; (2)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://zedomax.com/blog/2008/02/04/wikia-could-take-a-large-share-of-the-market-as-proven-by-korean-search-engine-giant-navercom/&quot; title=&quot;Wikia could take a large share of the market as proven by Korean search engine giant Naver.com (February 4, 2008)&quot;&gt;Wikia could take a large share of the market as proven by Korean search engine giant Naver.com&lt;/a&gt; (0)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;a href=&quot;http://feeds.feedburner.com/~a/Zedomaxcom?a=CHtYxI&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~a/Zedomaxcom?i=CHtYxI&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=0dLw3J&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=0dLw3J&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=4Ipy0j&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=4Ipy0j&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=mOAOzj&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=mOAOzj&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=CIxpaj&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=CIxpaj&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=2VngcJ&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=2VngcJ&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=fQuxPJ&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=fQuxPJ&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?a=0FcQ6J&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/Zedomaxcom?i=0FcQ6J&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            
            <pubDate>Fri, 18 Jul 2008 06:00:06 -0700</pubDate>
        </item>
            
        <item>
            <title>Embedded JBoss / Embedded EJB3 - Shrubbery</title>
            <link>http://swik.net/JBoss/del.icio.us+tag%2Fjboss/Embedded+JBoss+%2F+Embedded+EJB3+-+Shrubbery/cao4z</link>
            <description></description>
            
            <pubDate>Fri, 18 Jul 2008 03:58:02 -0700</pubDate>
        </item>
                </channel>
</rss>
