<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>TDD</title>
        <link>http://geekswithblogs.net/malloc/category/6447.aspx</link>
        <description>TDD</description>
        <language>en-US</language>
        <copyright>malloc();</copyright>
        <managingEditor>malloc@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Silicon Valley Code Camp October 27-28</title>
            <link>http://geekswithblogs.net/malloc/archive/2007/08/20/Silicon-Valley-Code-Camp-October-27-28.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.SiliconValley-Codecamp.com/Home.aspx"&gt;&lt;img alt="CodeCamp at FootHill College.  Click Here for Details and Registration" src="http://www.siliconvalley-codecamp.com/DisplayAd.ashx?ImageType=4" border="0" longdesc="" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Time to register again for this years Code Camp.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:7798a33d-996b-40cc-9c29-5a2d6eba440e" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/.net" rel="tag"&gt;.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/code%20camp" rel="tag"&gt;code camp&lt;/a&gt;, &lt;a href="http://technorati.com/tags/silicon%20valley" rel="tag"&gt;silicon valley&lt;/a&gt;, &lt;a href="http://technorati.com/tags/programming" rel="tag"&gt;programming&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114831"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114831" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/malloc/aggbug/114831.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>malloc();</dc:creator>
            <guid>http://geekswithblogs.net/malloc/archive/2007/08/20/Silicon-Valley-Code-Camp-October-27-28.aspx</guid>
            <pubDate>Tue, 21 Aug 2007 02:20:01 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/114831.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/08/20/Silicon-Valley-Code-Camp-October-27-28.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/114831.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/114831.aspx</trackback:ping>
        </item>
        <item>
            <title>Picking a great project codename</title>
            <link>http://geekswithblogs.net/malloc/archive/2007/07/09/Picking-a-great-project-codename.aspx</link>
            <description>&lt;p&gt;Back in February we (me and one other co-worker) started on a new project. We were both very excited about the project (and still are) so we &lt;strong&gt;needed&lt;/strong&gt; to come up with a great codename.&lt;/p&gt; &lt;p&gt;Since we were both Transformers fans as kids we named all the different components after &lt;a href="http://en.wikipedia.org/wiki/The_Transformers_%28animated_series%29_characters"&gt;Transformers characters&lt;/a&gt;. And now in July we are almost done with the project, so today we all went to the noon showing of the Transformers movie.&lt;/p&gt; &lt;p&gt;Mini-movie-review: if you can get passed the GM advertising, it is an excellent summer action blockbuster movie.&lt;/p&gt; &lt;p&gt;Was a great break from work, and also great to know your work is appreciated. But now that the project is coming to the end, the worst part is approaching. We will have to start calling it by its "public" name and can no longer complain about bugs in &lt;a href="http://en.wikipedia.org/wiki/Snarl_%28Transformers%29"&gt;Snarl&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Grimlock"&gt;Grimlock&lt;/a&gt;, or &lt;a href="http://en.wikipedia.org/wiki/Unicron"&gt;Unicron&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If your in the Bay Area and looking for a new job and like .NET, TDD, Transformers, and wants to work with web services and/or financial data you should get in &lt;a href="http://geekswithblogs.net/malloc/contact.aspx"&gt;contact with me&lt;/a&gt;.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;EOF&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:57851bd4-3126-4f39-8cc8-4036401481b9" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/transformers%20codename%20projects" rel="tag"&gt;transformers codename projects&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113814"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113814" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/malloc/aggbug/113814.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>malloc();</dc:creator>
            <guid>http://geekswithblogs.net/malloc/archive/2007/07/09/Picking-a-great-project-codename.aspx</guid>
            <pubDate>Tue, 10 Jul 2007 02:12:48 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/113814.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/07/09/Picking-a-great-project-codename.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/113814.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/113814.aspx</trackback:ping>
        </item>
        <item>
            <title>xUnit Test Patterns: Refactoring Test Code</title>
            <link>http://geekswithblogs.net/malloc/archive/2007/06/10/xUnit-Test-Patterns-Refactoring-Test-Code.aspx</link>
            <description>&lt;p&gt;I already had the book &lt;a href="http://www.amazon.com/xUnit-Test-Patterns-Refactoring-Addison-Wesley/dp/0131495054"&gt;xUnit Test Patterns: Refactoring Test Code&lt;/a&gt;  on my Amazon wishlist. But after reading Sam Gentile's &lt;a href="http://codebetter.com/blogs/sam.gentile/archive/2007/06/10/xunit-test-patterns-and-evolving-tdd-and-test-automation.aspx"&gt;xUnit Test Patterns and evolving TDD and test automation&lt;/a&gt; post today about the book and its topics I've decided to go ahead and order it now. I still have 3 books that I am currently reading ( &lt;a href="http://www.amazon.com/Inside-Microsoft-Server-2005-Pro-Developer/dp/0735621977/ref=pd_bbs_sr_2/103-6386287-3321406?ie=UTF8&amp;amp;s=books&amp;amp;qid=1181525924&amp;amp;sr=8-2"&gt;1&lt;/a&gt;, &lt;a href="http://www.amazon.com/Complete-Book-Long-Distance-Cycling-Confidence/dp/1579541992/ref=pd_bbs_sr_1/103-6386287-3321406?ie=UTF8&amp;amp;s=books&amp;amp;qid=1181525966&amp;amp;sr=8-1"&gt;2&lt;/a&gt;, &lt;a href="http://www.amazon.com/gp/product/1590597028/ref=wl_it_dp/103-6386287-3321406?ie=UTF8&amp;amp;coliid=I2E5IZKGCVQ92A&amp;amp;colid=3BN83CDTJFRN9"&gt;3&lt;/a&gt; ) but this will jump to the front of the line when it arrives. &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;EOF&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:51582366-ce08-44f9-83b0-e00478a4666f" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/TDD" rel="tag"&gt;TDD&lt;/a&gt;, &lt;a href="http://technorati.com/tags/xUnit" rel="tag"&gt;xUnit&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Test%20Patterns" rel="tag"&gt;Test Patterns&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113139"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113139" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/malloc/aggbug/113139.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>malloc();</dc:creator>
            <guid>http://geekswithblogs.net/malloc/archive/2007/06/10/xUnit-Test-Patterns-Refactoring-Test-Code.aspx</guid>
            <pubDate>Sun, 10 Jun 2007 23:46:03 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/113139.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/06/10/xUnit-Test-Patterns-Refactoring-Test-Code.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/113139.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/113139.aspx</trackback:ping>
        </item>
        <item>
            <title>MbUnit 2.4</title>
            <link>http://geekswithblogs.net/malloc/archive/2007/05/26/MbUnit-2.4.aspx</link>
            <description>&lt;p&gt;Thanks to &lt;a href="http://weblogs.asp.net/astopford/"&gt;Andrew Stopford&lt;/a&gt; and everyone else who works on MbUnit development. &lt;a href="http://weblogs.asp.net/astopford/archive/2007/05/24/mbunit-2-4-rtm.aspx"&gt;MbUnit 2.4 was just released&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If you are not unit testing or practicing TDD in your projects, I don't know how you could choose plain old NUnit over MbUnit. If you are using regular NUnit it is very simple to convert your projects MbUnit, they use the same [Test] attribute. &lt;/p&gt; &lt;p&gt;MbUnit has:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Row Testing:  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;[RowTest]
[Row(&lt;span style="color: #006080"&gt;"Hello"&lt;/span&gt;)]
[Row(&lt;span style="color: #006080"&gt;"Goodbye"&lt;/span&gt;)]
&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; TestString( &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; myString )
{
    &lt;span style="color: #008000"&gt;// do your tests in here...&lt;/span&gt;
}&lt;/pre&gt;&lt;/div&gt;More row testing details &lt;a href="http://haacked.com/archive/2004/10/20/Row_Based_Testing.aspx"&gt;here&lt;/a&gt;. 
&lt;/li&gt;&lt;li&gt;&lt;a href="http://haacked.com/archive/2007/05/10/productive-unit-testing-with-specialized-assertion-classes-in-mbunit.aspx"&gt;Specialized Assertions&lt;/a&gt; 
&lt;/li&gt;&lt;li&gt;Database rollback. The unit testing gods say that there should be absolutly no DB access in unit tests, but there are some times when I cannot avoid it. With the rollback attribute I don't have to worry about cleaning up the database after my test runs 
&lt;/li&gt;&lt;li&gt;Being able to test private methods. (see Vadim Kreynin's articles &lt;a href="http://vadim-net.blogspot.com/2007/04/testing-non-public-members-with-mbunit.html"&gt;here&lt;/a&gt; and &lt;a href="http://vadim-net.blogspot.com/2007/04/testing-non-public-members-with-mbunit_29.html"&gt;here&lt;/a&gt;). *
&lt;/li&gt;&lt;li&gt;&lt;a href="http://haacked.com/archive/2007/04/27/extract-embedded-resources-with-an-attribute-in-mbunit.aspx"&gt;Extract Embedded Resources With An Attribute In MbUnit&lt;/a&gt;. No more dealing with test file directories or setting the correct path in the [SetUp] methods!
&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mertner.com/confluence/display/MbUnit/RepeatAttribute"&gt;RepeatAttribute&lt;/a&gt;. Run a specific test multiple times in a row.
&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mertner.com/confluence/display/MbUnit/ThreadedRepeatAttribute"&gt;ThreadedRepeatAttribute&lt;/a&gt;. Run a specific test on multiple threads.
&lt;/li&gt;&lt;li&gt;etc. &lt;a title="http://www.mbunit.com/" href="http://www.mbunit.com/"&gt;http://www.mbunit.com/&lt;/a&gt; for all the details.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; * I have been using the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.aspx"&gt;InternalsVisibleTo&lt;/a&gt; assembly attribute to accomplish this for a little while now. It gets the job done nicely and has allowed complete separation of our unit tests into a separate assembly. It does require you to change method signatures to &lt;font color="#0000ff"&gt;internal&lt;/font&gt; instead of &lt;font color="#0000ff"&gt;private&lt;/font&gt;, OO purists might feel dirty doing this. Derik Whittaker had a good &lt;a href="http://devlicio.us/blogs/derik_whittaker/archive/2007/04/09/internalsvisibleto-testing-internal-methods-in-net-2-0.aspx"&gt;example&lt;/a&gt; on how the attribute should be used.&lt;/p&gt;
&lt;p&gt;EOF&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:12c7f14b-dc95-4613-bc41-8c6f65f86adb" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/MbUnit" rel="tag"&gt;MbUnit&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Unit%20Testing" rel="tag"&gt;Unit Testing&lt;/a&gt;, &lt;a href="http://technorati.com/tags/TDD" rel="tag"&gt;TDD&lt;/a&gt;, &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112783"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112783" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/malloc/aggbug/112783.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>malloc();</dc:creator>
            <guid>http://geekswithblogs.net/malloc/archive/2007/05/26/MbUnit-2.4.aspx</guid>
            <pubDate>Sun, 27 May 2007 00:13:41 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/malloc/comments/112783.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/malloc/archive/2007/05/26/MbUnit-2.4.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/malloc/comments/commentRss/112783.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/malloc/services/trackbacks/112783.aspx</trackback:ping>
        </item>
    </channel>
</rss>