<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Paulo Morgado : UnitTests</title><link>http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx</link><description>Tags: UnitTests</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Typemock Is Launching The ASP.NET Bundle – Get Free Licenses</title><link>http://msmvps.com/blogs/paulomorgado/archive/2009/05/18/typemock-is-launching-the-asp-net-bundle-get-free-licenses.aspx</link><pubDate>Mon, 18 May 2009 22:57:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1692642</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1692642</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1692642</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/05/18/typemock-is-launching-the-asp-net-bundle-get-free-licenses.aspx#comments</comments><description>&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;&lt;a title="Typemock - Simplify Unit Testing!" href="http://cli.gs/Typemock" target="_blank"&gt;Typemock&lt;/a&gt; is launching a new product for ASP.NET developers – the &lt;strong&gt;ASP.NET Bundle&lt;/strong&gt; - and for the launch they are giving out &lt;strong&gt;FREE licenses&lt;/strong&gt; to bloggers and their readers.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;The ASP.NET Bundle is the ultimate ASP.NET unit testing solution, and offers both Typemock &lt;a title="Typemock Isolator" href="http://cli.gs/TypemockIsolator" target="_blank"&gt;Isolator&lt;/a&gt; and &lt;a title="Ivonna - ASP.NET Unit Testing Tool" href="http://cli.gs/Ivonna" target="_blank"&gt;Ivonna&lt;/a&gt;, the ASP.NET Isolator add-on, for a discounted price.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;&lt;strong&gt;ASP.NET Bundle launch giveaway:&lt;/strong&gt; &lt;br /&gt;For the ASP.NET Bundle launch Typemock are giving away free licenses to bloggers and their readers.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;&lt;strong&gt;How do I get the free license?&lt;/strong&gt;&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Are you a blogger, webmaster, or internet columnist? Get your free license by helping&amp;nbsp;Typemock launch&amp;nbsp;their new ASP.NET Bundle, the ultimate ASP.NET unit testing solution.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Post the text below on your blog (as is, with links) and &lt;a href="mailto:asp@typemock.com"&gt;tell them about it&lt;/a&gt; . If you are in the first 60 to mail us after posting, your license will be on its way!&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;If you have an ASP.NET dedicated blog, you&amp;#39;ll get a license automatically (even if more than 60 submit) during the first week of this announcement.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;8 bloggers will also get an additional 2 licenses (each) to give away / raffle to their readers or friends.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;A few simple requirements:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;div align="justify"&gt;You must own a website, blog space or internet column, older than 2 months, or get permission from the owner of such a site.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;div align="justify"&gt;Your post must include the text below (including the links) between *Begin* and *End*.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;&lt;strong&gt;*Begin*&lt;/strong&gt;&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:20px;"&gt;&lt;a href="http://www.typemock.com/" target="_blank"&gt;Unit Testing&lt;/a&gt; ASP.NET? &lt;a href="http://www.typemock.com/ASP.NET_unit_testing_page.php" target="_blank"&gt;ASP.NET unit testing&lt;/a&gt; has never been this easy.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:20px;"&gt;Typemock is launching a new product for ASP.NET developers – the &lt;strong&gt;ASP.NET Bundle&lt;/strong&gt; - and for the launch will be giving out &lt;strong&gt;FREE licenses&lt;/strong&gt; to bloggers and their readers.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:20px;"&gt;The ASP.NET Bundle is the ultimate ASP.NET unit testing solution, and offers both &lt;a href="http://www.typemock.com/" target="_blank"&gt;Typemock Isolator&lt;/a&gt;, a &lt;a href="http://www.typemock.com/" target="_blank"&gt;unit test&lt;/a&gt; tool and &lt;a href="http://sm-art.biz/Ivonna.aspx" target="_blank"&gt;Ivonna&lt;/a&gt;, the Isolator add-on for &lt;a href="http://sm-art.biz/Ivonna.aspx" target="_blank"&gt;ASP.NET unit testing&lt;/a&gt;, for a bargain price.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:20px;"&gt;Typemock Isolator is a leading &lt;a href="http://www.typemock.com/" target="_blank"&gt;.NET unit testing&lt;/a&gt; tool (C# and VB.NET) for many ‘hard to test’ technologies such as &lt;a href="http://typemock.com/sharepointpage.php" target="_blank"&gt;SharePoint&lt;/a&gt;, &lt;a href="http://www.typemock.com/ASP.NET_unit_testing_page.php" target="_blank"&gt;ASP.NET&lt;/a&gt;, &lt;a href="http://www.typemock.com/ASP.NET_unit_testing_page.php" target="_blank"&gt;MVC&lt;/a&gt;, &lt;a href="http://www.typemock.com/wcfpage.php" target="_blank"&gt;WCF&lt;/a&gt;, WPF, &lt;a href="http://www.typemock.com/Silverlight_unit_testing_page.php" target="_blank"&gt;Silverlight&lt;/a&gt; and more. Note that for &lt;a href="http://www.typemock.com/Silverlight_unit_testing_page.php" target="_blank"&gt;unit testing Silverlight&lt;/a&gt; there is an open source Isolator add-on called &lt;a href="http://www.typemock.com/Silverlight_unit_testing_page.php" target="_blank"&gt;SilverUnit&lt;/a&gt;.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:20px;"&gt;The first 60 bloggers who will blog this text in their blog and &lt;a href="http://blog.typemock.com/2009/05/get-free-typemock-licenses-aspnet.html" target="_blank"&gt;tell us about it&lt;/a&gt;, will get a Free Isolator ASP.NET Bundle license (Typemock Isolator + Ivonna). If you post this in an ASP.NET &lt;strong&gt;dedicated&lt;/strong&gt; blog, you&amp;#39;ll get a license automatically (even if more than 60 submit) during the first week of this announcement.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:20px;"&gt;Also 8 bloggers will get an &lt;strong&gt;additional 2 licenses&lt;/strong&gt; (each) to give away to their readers / friends.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:20px;"&gt;Go ahead, click the following link for &lt;a href="http://blog.typemock.com/2009/05/get-free-typemock-licenses-aspnet.html" target="_blank"&gt;more information&lt;/a&gt; on how to get your free license.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;&lt;strong&gt;*End*&lt;/strong&gt;&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Once you post this in your site, just drop them a line at &lt;a href="mailto:asp@typemock.com"&gt;asp@typemock.com&lt;/a&gt; with your name and the post URL to get your free license.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Hurry up – this offer is limited to the first 60 bloggers, or to ASP.NET dedicated bloggers who will post this in the first week.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Make sure to follow their &lt;a title="The Typemock Inseider - The Official Typemock Blog, by the Typemock developers" href="http://cli.gs/TypemockInsiderBlog" target="_blank"&gt;Blog&lt;/a&gt;, &lt;a title="Typemock - Simplify Unit Testing!" href="http://cli.gs/Typemock" target="_blank"&gt;Site&lt;/a&gt; or &lt;a title="Typemock Twitter" href="http://cli.gs/TypemockTwitter" target="_blank"&gt;Twitter&lt;/a&gt; for updates on this event.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;&lt;a title="Unit Test Today! Get Typemock Isolator!" href="http://www.typemock.com/cart.php?p=Commercial&amp;amp;maint=on&amp;amp;quantity=1&amp;amp;referrer=485128" target="_blank"&gt;&lt;img alt="Unit Test Today! Get Typemock Isolator!" src="https://secure.plimus.com//developers//485128/Typemock_button_blue.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1692642" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category></item><item><title>Help Typemock Launch Its New Visual Basic .NET Friendly API And You Might Get A Free License</title><link>http://msmvps.com/blogs/paulomorgado/archive/2009/01/13/help-typemock-launch-its-new-visual-basic-net-friendly-api-and-you-might-get-a-free-license.aspx</link><pubDate>Tue, 13 Jan 2009 21:32:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1661503</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1661503</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1661503</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/01/13/help-typemock-launch-its-new-visual-basic-net-friendly-api-and-you-might-get-a-free-license.aspx#comments</comments><description>&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;&lt;a title="Typemock - Simplify Unit Testing!" href="http://cli.gs/Typemock" target="_blank"&gt;Typemock&lt;/a&gt; is announcing today a new version of Typemock Isolator (5.2).&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;One of the coolest features in the new version is the inclusion of a new &lt;a title="Unit Testing VB.NET" href="http://cli.gs/1DbBzH"&gt;VB .NET unit testing API&lt;/a&gt;. This &amp;#39;VB friendly&amp;#39; API was designed and written in VB.NET, for VB.NET developers. It uses the strengths of the VB.NET language to allow easy and intuitive use of the isolation API, for easier unit tests on any piece of .NET code.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;If you are you a blogger, webmaster, or internet columnist, you can get your free personal license by helping Typemock launch their new 5.2 version for Isolator - the best tool to unit test VB.NET applications.&lt;/p&gt;
&lt;p align="justify"&gt;Although this version is targeted to unit test VB.NET applications, &lt;a title="Visual C#" href="http://cli.gs/vcsharp" target="_blank"&gt;C#&lt;/a&gt; applications with unit tests built using &lt;a title="Microsoft Visual Studio" href="http://cli.gs/vstudio" target="_blank"&gt;Visual Studio&lt;/a&gt; 2005 can also benefit from this API.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;&lt;strong&gt;How can you get the free license?&lt;/strong&gt;&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Post the text below on your blog (as is, with links) and &lt;a href="mailto:vb@typemock.com" target="_blank"&gt;tell them about it&lt;/a&gt; . If you are in the first 25 to mail them after posting, your license will be on its way!&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;If you have a &lt;strong&gt;VB.NET dedicated blog&lt;/strong&gt;, you&amp;#39;ll get a license automatically (even if more than 25 submit) during the first week of this announcement.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;A few simple requirements:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div align="justify"&gt;You must own a website, blog space or internet column, older than 2 months, or get permission from the owner of such a site. &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Your post must include the text below (including the links) between &lt;strong&gt;*Begin*&lt;/strong&gt; and &lt;strong&gt;*End*&lt;/strong&gt;. &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;_&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;&lt;strong&gt;*Begin*&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.typemock.com/vbpage.php?utm_source=vbp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb"&gt;Programming Visual Basic&lt;/a&gt; applications?&lt;/p&gt;
&lt;p&gt;Typemock have released a new version of their &lt;a href="http://www.typemock.com/?utm_source=hp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb"&gt;unit testing&lt;/a&gt; tool, Typemock Isolator 5.2. &lt;br /&gt;This version includes a new friendly &lt;a href="http://www.typemock.com/vbpage.php?utm_source=vbp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb"&gt;VB.NET&lt;/a&gt; API which makes Isolator the best Isolation tool for &lt;a href="http://www.typemock.com/vbpage.php?utm_source=vbp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb"&gt;unit testing A Visual Basic (VB) .NET application&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Isolator now allows unit testing in VB or C# for many ‘hard to test’ technologies such as &lt;a href="http://typemock.com/sharepointpage.php?utm_source=spp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb"&gt;SharePoint&lt;/a&gt;, ASP.NET MVC, partial support for Silverlight, WPF, LINQ, WF, Entity Framework, &lt;a href="http://www.typemock.com/wcfpage.php?utm_source=wcfp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb"&gt;WCF unit testing&lt;/a&gt; and more.&lt;/p&gt;
&lt;p&gt;Note that the first 25 bloggers who blog this text in their blog and tell us about it, will get a &lt;strong&gt;Free Full Isolator license&lt;/strong&gt; (worth $139). If you post this in a &lt;strong&gt;VB.NET dedicated blog&lt;/strong&gt;, you&amp;#39;ll get a license automatically (even if more than 25 submit) during the first week of this announcement.&lt;/p&gt;
&lt;p&gt;Go ahead, click the following link for &lt;a href="http://blog.typemock.com/2009/01/get-free-isolator-licnese-for-helping.html?utm_source=vb_blog&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvbblog"&gt;more information&lt;/a&gt; on how to get your free license.&lt;/p&gt;
&lt;p&gt;_&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;*End*&lt;/strong&gt;&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Once you post this in your site, just drop them a line at &lt;a href="mailto:vb@typemock.com"&gt;vb@typemock.com&lt;/a&gt; with your name and the post URL to get your free license.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Hurry up – this offer is limited to the first 25 general bloggers, or to VB.NET dedicated bloggers who will post this in the first week.&lt;/p&gt;
&lt;p align="justify"&gt;--&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; This is an offer from &lt;a title="Typemock - Simplify Unit Testing!" href="http://www.typemock.com/" target="_blank"&gt;Typemock&lt;/a&gt; as announced at &lt;a title="http://blog.typemock.com/2009/01/get-free-isolator-licnese-for-helping.html" href="http://blog.typemock.com/2009/01/get-free-isolator-licnese-for-helping.html"&gt;http://blog.typemock.com/2009/01/get-free-isolator-licnese-for-helping.html&lt;/a&gt;. I’m just a fan.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1661503" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualStudio/default.aspx">VisualStudio</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualBasic/default.aspx">VisualBasic</category></item><item><title>Improving Debugging And Testing Through Assertions</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/12/03/improving-debugging-and-testing-through-assertions.aspx</link><pubDate>Wed, 03 Dec 2008 02:56:52 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1655603</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1655603</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1655603</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/12/03/improving-debugging-and-testing-through-assertions.aspx#comments</comments><description>&lt;a href="http://PauloMorgad.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;Reading through the &lt;a title="The Typemock Insider" target="_blank" href="http://blog.typemock.com/"&gt;The Typemock Insider&lt;/a&gt; blog, I came across &lt;a title="Can Debugging Be Improved?" target="_blank" href="http://blog.typemock.com/2008/11/can-debugging-be-improved.html"&gt;this post&lt;/a&gt; from &lt;a title="Gil Zilberfeld" target="_blank" href="http://www.blogger.com/profile/18210181375618736629"&gt;Gil Zilberfeld&lt;/a&gt;.&lt;/p&gt; &lt;a href="http://PauloMorgad.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;I myself tend to fall in Gil’s practice (&amp;quot;binary search&amp;quot; debugging), but I don’t think &lt;a title="Kent Beck" target="_blank" href="http://threeriversinstitute.org/Kent%20Beck.htm"&gt;Kent Beck&lt;/a&gt; has the right &lt;a title="Hit &amp;#39;em High, Hit &amp;#39;em Low" target="_blank" href="http://www.threeriversinstitute.org/HitEmHighHitEmLow.html"&gt;solution&lt;/a&gt;.&lt;/p&gt; &lt;a href="http://PauloMorgad.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;Gil’s suggestion of using &lt;a title="Typemock Isolator - Serious Development" target="_blank" href="http://www.typemock.com/Product.html"&gt;Isolator&lt;/a&gt; is tempting (I don’t miss an opportunity to use it), but still not my favorite one.&lt;/p&gt; &lt;a href="http://PauloMorgad.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;I prefer to use &lt;a title="Assertions in Managed Code" target="_blank" href="http://msdn.microsoft.com/library/70ab2522-6486-4076-a1a9-e0f11cd0f3a1.aspx"&gt;debug assertions&lt;/a&gt;. Debug assertions can be used when running a debug version of the application to pop-up assertion messages and when running unit tests to fail tests.&lt;/p&gt; &lt;a href="http://PauloMorgad.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;In order to use debug assertions in unit tests a “special” &lt;a title="Trace Listeners" target="_blank" href="http://msdn.microsoft.com/library/444b0d33-67ea-4c36-9e94-79c50f839025.aspx"&gt;trace listener&lt;/a&gt; is needed to make the test fail when its &lt;a title="TraceListener..::.Fail Method" target="_blank" href="http://msdn.microsoft.com/library/66a83512-a8fa-c745-bb43-a94518148fa4.aspx"&gt;Fail method&lt;/a&gt; is called.&lt;/p&gt; &lt;a href="http://PauloMorgad.NET/"&gt;&lt;/a&gt;  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;public class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;UnitTestTraceListener &lt;/span&gt;: &lt;span style="color:blue;"&gt;global&lt;/span&gt;::System.Diagnostics.&lt;span style="color:#2b91af;"&gt;DefaultTraceListener
&lt;/span&gt;{
     &lt;span style="color:blue;"&gt;public &lt;/span&gt;UnitTestTraceListener() : &lt;span style="color:blue;"&gt;base&lt;/span&gt;()
    {
        &lt;span style="color:blue;"&gt;this&lt;/span&gt;.Name = &lt;span style="color:#a31515;"&gt;&amp;quot;UnitTest&amp;quot;&lt;/span&gt;;
        &lt;span style="color:blue;"&gt;this&lt;/span&gt;.AssertUiEnabled = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
    }

    &lt;span style="color:blue;"&gt;public override void &lt;/span&gt;Fail(&lt;span style="color:blue;"&gt;string &lt;/span&gt;message, &lt;span style="color:blue;"&gt;string &lt;/span&gt;detailMessage)
    {
        Microsoft.VisualStudio.TestTools.UnitTesting.&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.Fail(&lt;span style="color:#a31515;"&gt;&amp;quot;Debug.Assert Failed: &amp;quot; &lt;/span&gt;+ message + &lt;span style="color:#a31515;"&gt;&amp;quot; &amp;quot; &lt;/span&gt;+ detailMessage);
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://PauloMorgad.NET/"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;Now, all you need to do is register it.&lt;/p&gt;
&lt;a href="http://PauloMorgad.NET/"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;Registering the trace listener can either be done in code:&lt;/p&gt;
&lt;a href="http://PauloMorgad.NET/"&gt;&lt;/a&gt;

&lt;pre class="code"&gt;System.Diagnostics.&lt;span style="color:#2b91af;"&gt;Trace&lt;/span&gt;.Listeners.Remove(&lt;span style="color:#a31515;"&gt;&amp;quot;Default&amp;quot;&lt;/span&gt;);
System.Diagnostics.&lt;span style="color:#2b91af;"&gt;Trace&lt;/span&gt;.Listeners.Add(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;UnitTestTraceListener&lt;/span&gt;());&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://PauloMorgad.NET/"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;or configuration:&lt;/p&gt;
&lt;a href="http://PauloMorgad.NET/"&gt;&lt;/a&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xml &lt;/span&gt;&lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1.0&lt;/span&gt;&amp;quot; &lt;span style="color:red;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;utf-8&lt;/span&gt;&amp;quot; &lt;span style="color:blue;"&gt;?&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;system.diagnostics&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;assert &lt;/span&gt;&lt;span style="color:red;"&gt;assertuienabled&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;false&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;trace&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;listeners&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;clear&lt;/span&gt;&lt;span style="color:blue;"&gt;/&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;add &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;UnitTest&lt;/span&gt;&amp;quot; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;UnitTestTraceListener&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/&amp;gt;
      &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;listeners&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;trace&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
  &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;system.diagnostics&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://PauloMorgad.NET/"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;And if I’m using Isolator I have the take in account the accesses made in the call to the Assert method. More fun to me.&lt;/p&gt;
&lt;a href="http://PauloMorgad.NET/"&gt;&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1655603" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualStudio/default.aspx">VisualStudio</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Debugging/default.aspx">Debugging</category></item><item><title>Typemock Isolator 5.1 Released</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/10/06/typemock-isolator-5-1-released.aspx</link><pubDate>Mon, 06 Oct 2008 22:41:57 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1649936</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1649936</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1649936</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/10/06/typemock-isolator-5-1-released.aspx#comments</comments><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;This major version adds static method support and non-public method faking to the AAA API. Check out the &lt;a title="Typemock Isolator 5.1 Released!" href="http://blog.typemock.com/2008/09/typemock-isolator-51-released.html" target="_blank"&gt;release notes&lt;/a&gt;.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;I don’t like the reflective approach to testing private methods.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;With the new additions to the AAA API, testing this class:&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;public class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;MyClass
&lt;/span&gt;{
    &lt;span style="color:blue;"&gt;public string &lt;/span&gt;Public()
    {
        &lt;span style="color:blue;"&gt;return this&lt;/span&gt;.Private();
    }

    &lt;span style="color:blue;"&gt;private string &lt;/span&gt;Private()
    {
        &lt;span style="color:blue;"&gt;throw new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;NotImplementedException&lt;/span&gt;();
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p&gt;can be done like this:&lt;/p&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;pre class="code"&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]
[&lt;span style="color:#2b91af;"&gt;Isolated&lt;/span&gt;]
&lt;span style="color:blue;"&gt;public void &lt;/span&gt;PrivateTest()
{
    &lt;span style="color:#2b91af;"&gt;MyClass &lt;/span&gt;fake = &lt;span style="color:#2b91af;"&gt;Isolate&lt;/span&gt;.Fake.Instance&amp;lt;&lt;span style="color:#2b91af;"&gt;MyClass&lt;/span&gt;&amp;gt;();

    &lt;span style="color:#2b91af;"&gt;Isolate&lt;/span&gt;.WhenCalled(() =&amp;gt; fake.Public()).CallOriginal();

    &lt;span style="color:#2b91af;"&gt;Isolate&lt;/span&gt;.NonPublic.WhenCalled(fake, &lt;span style="color:#a31515;"&gt;&amp;quot;Private&amp;quot;&lt;/span&gt;).WillReturn(&lt;span style="color:#a31515;"&gt;&amp;quot;FAKE&amp;quot;&lt;/span&gt;);

    &lt;span style="color:blue;"&gt;string &lt;/span&gt;fakePublic = fake.Public();

    &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#a31515;"&gt;&amp;quot;FAKE&amp;quot;&lt;/span&gt;, fakePublic);

    &lt;span style="color:#2b91af;"&gt;Isolate&lt;/span&gt;.Verify.WasCalledWithExactArguments(() =&amp;gt; fake.Public());

    &lt;span style="color:#2b91af;"&gt;Isolate&lt;/span&gt;.Verify.NonPublic.WasCalled(fake, &lt;span style="color:#a31515;"&gt;&amp;quot;Private&amp;quot;&lt;/span&gt;);
}&lt;/pre&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p&gt;I would like it better if it was like this:&lt;/p&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;pre class="code"&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]
[&lt;span style="color:#2b91af;"&gt;Isolated&lt;/span&gt;]
&lt;span style="color:blue;"&gt;public void &lt;/span&gt;PrivateTest()
{
    &lt;span style="color:#2b91af;"&gt;MyClass &lt;/span&gt;fake = &lt;span style="color:#2b91af;"&gt;Isolate&lt;/span&gt;.Fake.Instance&amp;lt;&lt;span style="color:#2b91af;"&gt;MyClass&lt;/span&gt;&amp;gt;();

    &lt;span style="color:#2b91af;"&gt;MyClass_Accessor &lt;/span&gt;fakeAccessor = &lt;span style="color:#2b91af;"&gt;MyClass_Accessor&lt;/span&gt;.AttachShadow(fake);

    &lt;span style="color:#2b91af;"&gt;Isolate&lt;/span&gt;.WhenCalled(() =&amp;gt; fakeAccessor.Private()).WillReturn(&lt;span style="color:#a31515;"&gt;&amp;quot;FAKE&amp;quot;&lt;/span&gt;);

    &lt;span style="color:#2b91af;"&gt;Isolate&lt;/span&gt;.WhenCalled(() =&amp;gt; fake.Public()).CallOriginal();

    &lt;span style="color:blue;"&gt;string &lt;/span&gt;fakePublic = fake.Public();

    &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(&lt;span style="color:#a31515;"&gt;&amp;quot;FAKE&amp;quot;&lt;/span&gt;, fakePublic);

    &lt;span style="color:#2b91af;"&gt;Isolate&lt;/span&gt;.Verify.WasCalledWithExactArguments(() =&amp;gt; fake.Public());

    &lt;span style="color:#2b91af;"&gt;Isolate&lt;/span&gt;.Verify.WasCalledWithExactArguments(() =&amp;gt; fakeAccessor.Private());
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p&gt;Looks almost the same but there aren’t any method names in the test code.&lt;/p&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p&gt;They were able to do it for Natural Mocks. I’m sure they will eventually do it for AAA.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1649936" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category></item><item><title>Faking Output Parameters With Typemock Isolator</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/10/06/faking-output-parameters-with-typemock-isolator.aspx</link><pubDate>Mon, 06 Oct 2008 20:51:40 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1649919</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1649919</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1649919</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/10/06/faking-output-parameters-with-typemock-isolator.aspx#comments</comments><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;Some time ago I was &lt;a title="Unit Testing and Mock Frameworks" href="http://msmvps.com/blogs/paulomorgado/archive/2007/02/17/unit-testing-and-mock-frameworks.aspx#1648003" target="_blank"&gt;asked&lt;/a&gt; if it was possible to fake output parameters with &lt;a title="Typemock - Simplify Unit Testing!" href="http://www.typemock.com/" target="_blank"&gt;&lt;/a&gt;&lt;a title="Typemock Isolator - Serious Development" href="http://www.typemock.com/Product.html" target="_blank"&gt;Typemock Isolator&lt;/a&gt;.&lt;/a&gt;&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;It’s actually very easy using any of the APIs.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;Given this class:&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;pre class="code"&gt;&lt;span style="color:#0000ff;"&gt;public class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;MyClass
&lt;/span&gt;{
    &lt;span style="color:#0000ff;"&gt;public bool &lt;/span&gt;MyMethod(&lt;span style="color:#0000ff;"&gt;string &lt;/span&gt;input, &lt;span style="color:#0000ff;"&gt;out int &lt;/span&gt;output1, &lt;span style="color:#0000ff;"&gt;out double &lt;/span&gt;output2)
    {
        &lt;span style="color:#0000ff;"&gt;throw new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;NotImplementedException&lt;/span&gt;();
    }
}&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using the new AAA API, it&amp;#39;s as clean as:&lt;/p&gt;

&lt;pre class="code"&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]
[&lt;span style="color:#2b91af;"&gt;Isolated&lt;/span&gt;]
&lt;span style="color:blue;"&gt;public void &lt;/span&gt;TestMethodIsolated()
{
    &lt;span style="color:#2b91af;"&gt;MyClass &lt;/span&gt;target = &lt;span style="color:#2b91af;"&gt;Isolate&lt;/span&gt;.Fake.Instance&amp;lt;&lt;span style="color:#2b91af;"&gt;MyClass&lt;/span&gt;&amp;gt;();

    &lt;span style="color:blue;"&gt;string &lt;/span&gt;input = &lt;span style="color:#a31515;"&gt;&amp;quot;test value&amp;quot;&lt;/span&gt;;
    &lt;span style="color:blue;"&gt;int &lt;/span&gt;expectedOutput1 = 1;
    &lt;span style="color:blue;"&gt;double &lt;/span&gt;expectedOutput2 = 2;

    &lt;span style="color:#2b91af;"&gt;Isolate&lt;/span&gt;.WhenCalled(() =&amp;gt; target.MyMethod(input, &lt;span style="color:blue;"&gt;out &lt;/span&gt;expectedOutput1, &lt;span style="color:blue;"&gt;out &lt;/span&gt;expectedOutput2)).WillReturn(&lt;span style="color:blue;"&gt;true&lt;/span&gt;);

    &lt;span style="color:blue;"&gt;int &lt;/span&gt;output1;
    &lt;span style="color:blue;"&gt;double &lt;/span&gt;output2;
    &lt;span style="color:blue;"&gt;bool &lt;/span&gt;result = target.MyMethod(input, &lt;span style="color:blue;"&gt;out &lt;/span&gt;output1, &lt;span style="color:blue;"&gt;out &lt;/span&gt;output2);

    &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsTrue(result);
    &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual&amp;lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;gt;(expectedOutput1, output1);
    &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual&amp;lt;&lt;span style="color:blue;"&gt;double&lt;/span&gt;&amp;gt;(expectedOutput2, output2);
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p&gt;Using Natural Mocks, it&amp;#39;s as easy as:&lt;/p&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;pre class="code"&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]
[&lt;span style="color:#2b91af;"&gt;VerifyMocks&lt;/span&gt;]
&lt;span style="color:#0000ff;"&gt;public void &lt;/span&gt;TestMethodNatural()
{
    &lt;span style="color:#2b91af;"&gt;MyClass &lt;/span&gt;target = &lt;span style="color:#2b91af;"&gt;RecorderManager&lt;/span&gt;.CreateMockedObject&amp;lt;&lt;span style="color:#2b91af;"&gt;MyClass&lt;/span&gt;&amp;gt;();

    &lt;span style="color:#0000ff;"&gt;string &lt;/span&gt;input = &lt;span style="color:#a31515;"&gt;&amp;quot;test value&amp;quot;&lt;/span&gt;;
    &lt;span style="color:#0000ff;"&gt;int &lt;/span&gt;expectedOutput1 = 1;
    &lt;span style="color:#0000ff;"&gt;double &lt;/span&gt;expectedOutput2 = 2;

    &lt;span style="color:#0000ff;"&gt;using &lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;RecordExpectations &lt;/span&gt;recorder = &lt;span style="color:#2b91af;"&gt;RecorderManager&lt;/span&gt;.StartRecording())
    {
        recorder.ExpectAndReturn(target.MyMethod(input, &lt;span style="color:#0000ff;"&gt;out &lt;/span&gt;expectedOutput1, &lt;span style="color:#0000ff;"&gt;out &lt;/span&gt;expectedOutput2), &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;);
    }

    &lt;span style="color:#0000ff;"&gt;int &lt;/span&gt;output1;
    &lt;span style="color:#0000ff;"&gt;double &lt;/span&gt;output2;
    &lt;span style="color:#0000ff;"&gt;bool &lt;/span&gt;result = target.MyMethod(input, &lt;span style="color:#0000ff;"&gt;out &lt;/span&gt;output1, &lt;span style="color:#0000ff;"&gt;out &lt;/span&gt;output2);

    &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsTrue(result);
    &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual&amp;lt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&amp;gt;(expectedOutput1, output1);
    &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual&amp;lt;&lt;span style="color:#0000ff;"&gt;double&lt;/span&gt;&amp;gt;(expectedOutput2, output2);
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p&gt;It&amp;#39;s also possible using Reflective Mocks:&lt;/p&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;pre class="code"&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]
[&lt;span style="color:#2b91af;"&gt;VerifyMocks&lt;/span&gt;]
&lt;span style="color:#0000ff;"&gt;public void &lt;/span&gt;TestMethodReflective()
{
    &lt;span style="color:#2b91af;"&gt;MockObject&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;MyClass&lt;/span&gt;&amp;gt; targetMock = &lt;span style="color:#2b91af;"&gt;MockManager&lt;/span&gt;.MockObject&amp;lt;&lt;span style="color:#2b91af;"&gt;MyClass&lt;/span&gt;&amp;gt;();

    &lt;span style="color:#0000ff;"&gt;string &lt;/span&gt;input = &lt;span style="color:#a31515;"&gt;&amp;quot;test value&amp;quot;&lt;/span&gt;;
    &lt;span style="color:#0000ff;"&gt;int &lt;/span&gt;expectedOutput1 = 1;
    &lt;span style="color:#0000ff;"&gt;double &lt;/span&gt;expectedOutput2 = 2;

    targetMock.ExpectAndReturn(
        &lt;span style="color:#a31515;"&gt;&amp;quot;MyMethod&amp;quot;&lt;/span&gt;,
        &lt;span style="color:#0000ff;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;DynamicReturnValue&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;delegate&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;[] parameters, &lt;span style="color:#0000ff;"&gt;object &lt;/span&gt;context)
            {
                parameters[1] = expectedOutput1;
                parameters[2] = expectedOutput2;
                &lt;span style="color:#0000ff;"&gt;return true&lt;/span&gt;;
            }));

    &lt;span style="color:#0000ff;"&gt;int &lt;/span&gt;output1;
    &lt;span style="color:#0000ff;"&gt;double &lt;/span&gt;output2;
    &lt;span style="color:#0000ff;"&gt;bool &lt;/span&gt;result = targetMock.Object.MyMethod(input, &lt;span style="color:#0000ff;"&gt;out &lt;/span&gt;output1, &lt;span style="color:#0000ff;"&gt;out &lt;/span&gt;output2);

    &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.IsTrue(result);
    &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual&amp;lt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&amp;gt;(expectedOutput1, output1);
    &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual&amp;lt;&lt;span style="color:#0000ff;"&gt;double&lt;/span&gt;&amp;gt;(expectedOutput2, output2);
}&lt;/pre&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p&gt;All you have to do is choose which one you like most.&lt;/p&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1649919" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category></item><item><title>Typemock Isolator 5.0 Is Out With Its New AAA API</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/08/20/typemock-isolator-5-0-is-out-with-its-new-aaa-api.aspx</link><pubDate>Wed, 20 Aug 2008 21:33:30 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1645278</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1645278</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1645278</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/08/20/typemock-isolator-5-0-is-out-with-its-new-aaa-api.aspx#comments</comments><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="Typemock - Simplify Unit Testing!" href="http://www.typemock.com/" target="_blank"&gt;Typemock&lt;/a&gt; has released version 5.0 of its unit testing tool: &lt;a title="Typemock Isolator - Serious Development" href="http://www.typemock.com/Product.html" target="_blank"&gt;Isolator&lt;/a&gt;. Check out the &lt;a title="Typemock Isolator 5.0 Released" href="http://blog.typemock.com/2008/08/typemock-isolator-50-released.html" target="_blank"&gt;release notes&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;This new version comes with a new API: &lt;strong&gt;A&lt;/strong&gt;rrange&lt;strong&gt; A&lt;/strong&gt;ct &lt;strong&gt;A&lt;/strong&gt;ssert:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="Isolator AAA API - The Basics" href="http://blog.typemock.com/2008/08/isolator-aaa-api-basics.html" target="_blank"&gt;Isolator AAA API - The Basics&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="Isolator AAA: Creating Fakes" href="http://blog.typemock.com/2008/08/isolator-aaa-creating-fakes.html" target="_blank"&gt;Isolator AAA: Creating Fakes&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I’ll have to say that I liked &lt;strong&gt;Isolator&lt;/strong&gt; better over &lt;strong&gt;Isolate&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Also new in this version is the inclusion of the help file in the installation package.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1645278" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualStudio/default.aspx">VisualStudio</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category></item><item><title>Isolator 4.3 Released!</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/07/02/isolator-4-3-released.aspx</link><pubDate>Wed, 02 Jul 2008 20:47:59 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1639160</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1639160</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1639160</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/07/02/isolator-4-3-released.aspx#comments</comments><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;Today &lt;a title="Typemock - Simplify Unit Testing!" href="http://www.typemock.com/" target="_blank"&gt;Typemock&lt;/a&gt; released version 4.3 of &lt;a title="Typemock Isolator - Serious Development" href="http://www.typemock.com/Product.html" target="_blank"&gt;Typemock Isolator&lt;/a&gt;. Download it from &lt;a title="Typemock Isolator Download" href="http://www.typemock.com/Downloads.php" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;h4&gt;What’s new? &lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;Support for &lt;a title="Ivonna" href="http://sm-art.biz/Ivonna.aspx" target="_blank"&gt;Ivonna&lt;/a&gt;. For those of you who develop ASP.Net applications, Ivonna is a great tool, built on top of Isolator’s platform, to simplify writing tests for &lt;a title="ASP.NET Developer Center" href="http://msdn.microsoft.com/asp.net/" target="_blank"&gt;ASP.NET&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;Typemock.Integration.Packs namespace APIs added to support license management through Isolator, the way Ivonna does. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;As announced when it was released, version 4.2 was the last version of Isolator to support .NET 1.1. Version 4.3 only supports the 2.0 runtime and its &lt;a title="Microsoft Visual Studio" href="http://msdn.microsoft.com/vstudio/" target="_blank"&gt;Visual Studio&lt;/a&gt; counterparts: VS2005 and VS2008. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;For 64 bit machines, now there’s a single installer. (don’t forget to uninstall both previous 32 and 64 installers prior to installing 4.3.) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;&lt;strong&gt;RecorderManager.GetMockOf(instanceRef)&lt;/strong&gt; and &lt;strong&gt;MockManager.GetMockOf(instanceRef)&lt;/strong&gt;. To retrieve the mock controller object based on a reference to the instance. (&lt;a title="Getting mock object from an instance" href="http://blog.typemock.com/2008/06/getting-mock-object-from-instance.html" target="_blank"&gt;more...&lt;/a&gt;). &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Bug fixes:&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;Fixes to DLINQ support. LINQ Queries with data tables now work better, for example with GroupBy. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;Static constructors in Natural Mocks are now invoked correctly. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;A bug that caused an exception to be thrown when mocking interfaces (&amp;quot;Method XX in type &lt;strong&gt;IMyInterface&lt;/strong&gt; has no matching overload that returns &lt;strong&gt;TypeMock.Mock+a&lt;/strong&gt;) was fixed. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;A bug that caused an exception to be thrown when the mocked object was overriding &lt;strong&gt;Equals &lt;/strong&gt;was fixed. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;A bug that caused failure in mocking explicit interface with the same name was fixed. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;A bug occurring im multithreading scenarios in &lt;strong&gt;VerifyWithWait&lt;/strong&gt; was fixed. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;A bug that causes &lt;strong&gt;NullReferenceException&lt;/strong&gt; to be thrown when using &lt;strong&gt;Auto Deploy&lt;/strong&gt; was fixed. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;See also:&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;&lt;a title="Isolator 4.3 Released!" href="http://blog.typemock.com/2008/07/isolator-43-released.html" target="_blank"&gt;Isolator 4.3 Released!&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;&lt;a title="Isolator 4.3 Release Notes" href="http://www.typemock.com/Docs/UserGuide/index.php?topic=ReleaseNotes43.html" target="_blank"&gt;Isolator 4.3 Release Notes&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;&lt;a title="Getting mock object from an instance" href="http://blog.typemock.com/2008/06/getting-mock-object-from-instance.html" target="_blank"&gt;Getting mock object from an instance&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1639160" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category></item><item><title>Why Use Random Values For Unit Testing</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/06/30/why-use-random-values-for-unit-testing.aspx</link><pubDate>Sun, 29 Jun 2008 23:40:08 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1638825</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1638825</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1638825</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/06/30/why-use-random-values-for-unit-testing.aspx#comments</comments><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;On a previous &lt;a title="Using Random Values For Unit Testing" href="http://msmvps.com/blogs/paulomorgado/archive/2008/06/24/using-random-values-for-unit-testing.aspx" target="_blank"&gt;post&lt;/a&gt; I introduced a &lt;a title="Random Generator For Unit Testing" href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=PauloMorgado&amp;amp;ReleaseId=1196" target="_blank"&gt;library for generating random values&lt;/a&gt; for purposes of unit testing.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;I received a few comments and questions on my blogs [&lt;a title="Using Random Values For Unit Testing" href="http://weblogs.asp.net/paulomorgado/archive/2008/06/24/using-random-values-for-unit-testing.aspx" target="_blank"&gt;^&lt;/a&gt;][&lt;a title="Using Random Values For Unit Testing" href="http://msmvps.com/blogs/paulomorgado/archive/2008/06/24/using-random-values-for-unit-testing.aspx" target="_blank"&gt;^&lt;/a&gt;][&lt;a title="Usando Valores Aleatórios Para Testes Unitários" href="http://www.arquitecturadesoftware.org/blogs/paulomorgado/archive/2008/06/24/usando-valores-aleat-rios-para-testes-unit-rios.aspx" target="_blank"&gt;^&lt;/a&gt;][&lt;a title="Usando Valores Aleatórios Para Testes Unitários" href="http://weblogs.pontonetpt.com/pjmorgado/posts/27674.aspx" target="_blank"&gt;^&lt;/a&gt;].&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;&lt;a title="Simon Ince&amp;#39;s Blog - Ramblings of an Application Development Consultant in the UK" href="http://blogs.msdn.com/simonince" target="_blank"&gt;Simon&lt;/a&gt; says that he’d “generally want every instance of the test I run to be repeatable on *every* run” and he’d “inclined to use the data source functionality in VSTS Unit Tests”. I couldn’t agree more.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;&lt;a title="Hugo Batista: Software Architecture and Engineering" href="http://blogs.msdn.com/hugobatista/" target="_blank"&gt;Hugo&lt;/a&gt; pointed me to &lt;a title="Pex: Automated Exploratory Testing for .NET" href="http://research.microsoft.com/pex/" target="_blank"&gt;Pex&lt;/a&gt;. Looks nice. I’ll have to take a deeper look at it.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;Other commenters were worried that in the case of a test failing to pass they were unable to reproduce the conditions of the test and thus would be unable to understand why the test had failed. As I see it, all data used in a failed test should be in the test output (at least, the data that made the test fail). Being it predictable data or random data.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;I guess that most of the comments “against” my idea were due to the fact that I didn’t explain it well. I’ll try to do a better job now.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;I use these random values when the value itself is not important, what’s important is its uniqueness.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;Imagine you have&amp;#160; &lt;strong&gt;Costumer&lt;/strong&gt; class where it’s enough to tell that the costumer is the same in any two given instances if the costumer ID is the same. In order to test the comparison code, I don’t need any particular reproducible set of values. I just need them to be different or the same depending on the test.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;Imagine I have some code that needs to access the database with the connection string in a specific &lt;a title="connectionStrings Element (ASP.NET Settings Schema)" href="http://msdn.microsoft.com/library/b6ffbb2e-a4d1-410e-8f7e-9755e92c65de.aspx" target="_blank"&gt;connection string settings&lt;/a&gt; element. I don’t care what the connection string is because I won’t be really accessing the database (this is really easy to accomplish with &lt;a title="Typemock Isolator - Serious Development" href="http://www.typemock.com/Product.html" target="_blank"&gt;Isolator&lt;/a&gt;).&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;I hope I’ve explained myself better this time.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1638825" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category></item><item><title>Using Random Values For Unit Testing</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/06/24/using-random-values-for-unit-testing.aspx</link><pubDate>Mon, 23 Jun 2008 23:40:17 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1637133</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1637133</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1637133</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/06/24/using-random-values-for-unit-testing.aspx#comments</comments><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;When writing my unit tests I don’t like to use hard coded fixed values because I either end up using the same values or, because of that, tests may succeed by coincidence.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;Over time, I have developed an helper class to generate random values for testing.&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;namespace &lt;/span&gt;PauloMorgado.VisualStudio.TestTools.UnitTesting
{
    &lt;span style="color:blue;"&gt;public static class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;RandomGenerator
    &lt;/span&gt;{
        &lt;span style="color:blue;"&gt;public static bool &lt;/span&gt;Boolean();
        &lt;span style="color:blue;"&gt;public static string &lt;/span&gt;String();
        &lt;span style="color:blue;"&gt;public static string &lt;/span&gt;String(&lt;span style="color:blue;"&gt;string &lt;/span&gt;prefix);
        &lt;span style="color:blue;"&gt;public static short &lt;/span&gt;Int8();
        &lt;span style="color:blue;"&gt;public static short &lt;/span&gt;Int8(&lt;span style="color:blue;"&gt;short &lt;/span&gt;maxValue);
        &lt;span style="color:blue;"&gt;public static short &lt;/span&gt;Int8(&lt;span style="color:blue;"&gt;short &lt;/span&gt;minValue, &lt;span style="color:blue;"&gt;short &lt;/span&gt;maxValue);
        &lt;span style="color:blue;"&gt;public static short &lt;/span&gt;Int16();
        &lt;span style="color:blue;"&gt;public static short &lt;/span&gt;Int16(&lt;span style="color:blue;"&gt;short &lt;/span&gt;maxValue);
        &lt;span style="color:blue;"&gt;public static short &lt;/span&gt;Int16(&lt;span style="color:blue;"&gt;short &lt;/span&gt;minValue, &lt;span style="color:blue;"&gt;short &lt;/span&gt;maxValue);
        &lt;span style="color:blue;"&gt;public static int &lt;/span&gt;Int32();
        &lt;span style="color:blue;"&gt;public static int &lt;/span&gt;Int32(&lt;span style="color:blue;"&gt;int &lt;/span&gt;maxValue);
        &lt;span style="color:blue;"&gt;public static int &lt;/span&gt;Int32(&lt;span style="color:blue;"&gt;int &lt;/span&gt;minValue, &lt;span style="color:blue;"&gt;int &lt;/span&gt;maxValue);
        &lt;span style="color:blue;"&gt;public static &lt;/span&gt;TEnum Enum&amp;lt;TEnum&amp;gt;();
        &lt;span style="color:blue;"&gt;public static &lt;/span&gt;TEnum EnumFlagsWith&amp;lt;TEnum&amp;gt;(TEnum flagsToAdd);
        &lt;span style="color:blue;"&gt;public static &lt;/span&gt;TEnum EnumFlagsWithout&amp;lt;TEnum&amp;gt;(TEnum flagsToRemove);
        &lt;span style="color:blue;"&gt;public static &lt;/span&gt;TEnum Enum&amp;lt;TEnum&amp;gt;(&lt;span style="color:blue;"&gt;int &lt;/span&gt;maxValue);
        &lt;span style="color:blue;"&gt;public static &lt;/span&gt;TEnum Enum&amp;lt;TEnum&amp;gt;(&lt;span style="color:blue;"&gt;int &lt;/span&gt;minValue, &lt;span style="color:blue;"&gt;int &lt;/span&gt;maxValue);
        &lt;span style="color:blue;"&gt;public static &lt;/span&gt;System.&lt;span style="color:#2b91af;"&gt;Guid &lt;/span&gt;Guid();
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p&gt;This is something that I would like to find on mock frameworks (like &lt;a title="Typemock Isolator - Serious Development" href="http://www.typemock.com/Product.html" target="_blank"&gt;Typemock Isolator&lt;/a&gt;, &lt;a title="Rhino.Mocks" href="http://www.ayende.com/projects/rhino-mocks.aspx" target="_blank"&gt;Rhino.Mocks&lt;/a&gt; or &lt;a title="MoQ" href="http://code.google.com/p/moq/" target="_blank"&gt;MoQ&lt;/a&gt;).&lt;/p&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p&gt;It’s still a work in progress, but if you want to try it, it’s on &lt;a title="Paulo Morgado&amp;#39;s MSDN Code Gallery" href="http://code.msdn.microsoft.com/PauloMorgado" target="_blank"&gt;my MSDN Code Gallery&lt;/a&gt;: &lt;a title="Paulo Morgado - Random Generator For Unit Testing" href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=PauloMorgado&amp;amp;ReleaseId=1196" target="_blank"&gt;Random Generator For Unit Testing&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1637133" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualStudio/default.aspx">VisualStudio</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category></item><item><title>Typemock Developers Community Site Updated</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/05/29/typemock-developers-community-site-updated.aspx</link><pubDate>Wed, 28 May 2008 23:54:19 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1628463</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1628463</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1628463</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/05/29/typemock-developers-community-site-updated.aspx#comments</comments><description>&lt;p align="justify"&gt;&lt;a title="Typemock - Simplify Unit Testing!" href="http://www.typemock.com/" target="_blank"&gt;Typemock&lt;/a&gt; has updated its &lt;a title="Typemock Developers Community" href="http://www.typemock.com/Community.php" target="_blank"&gt;Developers Community&lt;/a&gt; Site with new sections.&lt;/p&gt;  &lt;p align="justify"&gt;Besides the &lt;a title="Typemock Forum" href="http://www.typemock.com/community/index.php" target="_blank"&gt;forums&lt;/a&gt;, there&amp;#39;s a new &lt;a title="Typemock Add-ons" href="http://www.typemock.com/ecosystems.php" target="_blank"&gt;add-ons&lt;/a&gt; page where anyone can share her/his tools or snippets (I guess I&amp;#39;ll have to brush up my &lt;a title="Typemock Snippets For Visual Studio" href="http://msmvps.com/blogs/paulomorgado/archive/2008/01/13/typemock-snippets-for-visual-studio.aspx" target="_blank"&gt;Typemock Snippets For Visual Studio&lt;/a&gt; to add there) and an &lt;a title="Typemock Experts" href="http://www.typemock.com/experts.html" target="_blank"&gt;experts&lt;/a&gt; page (guess who&amp;#39;s there).&lt;/p&gt;  &lt;p style="text-align:center;"&gt;&lt;a title="Typemock fan" href="http://www.typemock.com/?id=1"&gt;&lt;img alt="Typemock fan" src="http://www.typemock.com/images/mockfan.gif" /&gt;&lt;/a&gt; &lt;a title="Meet the experts" href="http://www.typemock.com/experts.html"&gt;&lt;img alt="Meet the experts" src="http://www.typemock.com/images/typemockexpert.gif" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1628463" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Community/default.aspx">Community</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category></item><item><title>Upcoming Typemock Webcast on March 12</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/03/04/upcoming-typemock-webcast-on-march-12.aspx</link><pubDate>Tue, 04 Mar 2008 23:10:35 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1533426</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1533426</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1533426</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/03/04/upcoming-typemock-webcast-on-march-12.aspx#comments</comments><description>&lt;p&gt;&lt;a title="Typemock - Simplify Unit Testing!" href="http://www.typemock.com/" target="_blank"&gt;Typemock&lt;/a&gt; is having a special Webcast on Wednesday March 12, 16:00 GMT&lt;/p&gt; &lt;p&gt;The live demo will include:&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;div&gt;The Support of the new .NET 3.5 framework and specifically how to mock LINQ statements. &lt;/div&gt; &lt;li&gt; &lt;div&gt;The improved IDE based on using colors to emphasize mocked methods. &lt;/div&gt; &lt;li&gt; &lt;div&gt;Seamless integration with&amp;nbsp; Microsoft’s Visual Studio 2008. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;It is also an opportunity to meet &lt;a title="Typemock - Simplify Unit Testing!" href="http://www.typemock.com/" target="_blank"&gt;Typemock&lt;/a&gt;’s development team, ask questions online and share some tips.&lt;/p&gt; &lt;p&gt;&lt;b&gt;.....and one of you can win a Nintendo Wii during in the webcast!&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="Meeting Information: Typemock Isolator v4.2 Live Demo" href="https://meetings.webex.com/mw0305l/mywebex/default.do?service=1&amp;amp;siteurl=meetings&amp;amp;nomenu=true&amp;amp;main_url=%2Fmc0800l%2Fe.do%3Fsiteurl%3Dmeetings%26AT%3DMI%26EventID%3D5169772%26UID%3D0%26Host%3D0cac0d4278564247%26FrameSet%3D2%26PW%3D4ded65183d3a345e5d2627" target="_blank"&gt;Click here to participate in the Webcast&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1533426" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Events/default.aspx">Events</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Webcasts/default.aspx">Webcasts</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Training/default.aspx">Training</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category></item><item><title>TypeMock Isolator 4.2 Released</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/03/03/typemock-isolator-4-2-released.aspx</link><pubDate>Mon, 03 Mar 2008 00:40:33 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1531383</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1531383</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1531383</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/03/03/typemock-isolator-4-2-released.aspx#comments</comments><description>&lt;p align="justify"&gt;&lt;a title="Typemock - Simplify Unit Testing!" href="http://www.typemock.com/" target="_blank"&gt;TypeMock&lt;/a&gt; has released version 4.2 of its mocking framework: TypeMock Insulator. Check out the &lt;a title="Typemock Isolator 4.2 release notes" href="http://www.typemock.com/Docs/UserGuide/index.php?topic=ReleaseNotes42.html" target="_blank"&gt;release notes&lt;/a&gt;.&lt;/p&gt; &lt;p align="justify"&gt;My four favorite new features in this release are:&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;div align="justify"&gt;&lt;a target="_self"&gt;Improved mock chaining&lt;/a&gt;&lt;/div&gt; &lt;li&gt; &lt;div align="justify"&gt;&lt;a target="_self"&gt;Debugger evaluation doesn&amp;#39;t change the test behavior&lt;/a&gt;&lt;/div&gt; &lt;li&gt; &lt;div align="justify"&gt;&lt;a target="_self"&gt;The debugger can be run inside a recording block without confusing the test&lt;/a&gt;&lt;/div&gt; &lt;li&gt; &lt;div align="justify"&gt;&lt;a target="_self"&gt;When you step in the debugger into a mocked method, the mocked method will be painted&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;&lt;a name="52FA3BA977474f4e8E34732EF0826075"&gt;&lt;/a&gt;Improved mock chaining&lt;/h3&gt; &lt;p&gt;(If you want to learn more about chains, read this &lt;a title="Chains, Part I: Chain-Challenged" href="http://blog.typemock.com/2008/02/chains-part-i-chain-challenged.html" target="_blank"&gt;post&lt;/a&gt; from &lt;a title="Gil Zilberfeld, Typemock Team" href="http://www.typemock.com/community/viewtopic.php?p=2764#2764" target="_blank"&gt;Gil&lt;/a&gt;)&lt;/p&gt; &lt;p&gt;Take this class to be tested:&lt;/p&gt;&lt;pre style="border-right:thin outset;padding-right:10px;border-top:thin groove;padding-left:10px;background:#ffffff;overflow-x:auto;padding-bottom:10px;border-left:thin groove;padding-top:10px;border-bottom:thin outset;font-family:consolas;"&gt;&lt;span style="color:blue;"&gt;public class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;TestedClass1
&lt;/span&gt;{
    &lt;span style="color:blue;"&gt;public &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IDictionary&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;, &lt;span style="color:blue;"&gt;object&lt;/span&gt;&amp;gt; Dictionary
    {
        &lt;span style="color:blue;"&gt;get &lt;/span&gt;{ &lt;span style="color:blue;"&gt;throw new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;NotImplementedException&lt;/span&gt;(); }
    }

    &lt;span style="color:blue;"&gt;public object &lt;/span&gt;Method(&lt;span style="color:blue;"&gt;bool &lt;/span&gt;cond)
    {
        &lt;span style="color:blue;"&gt;if &lt;/span&gt;(cond)
        {
            &lt;span style="color:blue;"&gt;return &lt;/span&gt;Dictionary[&lt;span style="color:#a31515;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;];
        }
        &lt;span style="color:blue;"&gt;else
        &lt;/span&gt;{
            &lt;span style="color:blue;"&gt;return &lt;/span&gt;Dictionary[&lt;span style="color:#a31515;"&gt;&amp;quot;false&amp;quot;&lt;/span&gt;];
        }
    }
}&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;The following test:&lt;/p&gt;&lt;pre style="border-right:thin outset;padding-right:10px;border-top:thin groove;padding-left:10px;background:#ffffff;overflow-x:auto;padding-bottom:10px;border-left:thin groove;padding-top:10px;border-bottom:thin outset;font-family:consolas;"&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]
[&lt;span style="color:#2b91af;"&gt;VerifyMocks&lt;/span&gt;]
&lt;span style="color:blue;"&gt;public void &lt;/span&gt;TestMethod1()
{
    &lt;span style="color:blue;"&gt;object &lt;/span&gt;trueObject = &lt;span style="color:blue;"&gt;new object&lt;/span&gt;();
    &lt;span style="color:blue;"&gt;object &lt;/span&gt;falseObject = &lt;span style="color:blue;"&gt;new object&lt;/span&gt;();

    &lt;span style="color:#2b91af;"&gt;TestedClass1 &lt;/span&gt;target = &lt;span style="color:#2b91af;"&gt;RecorderManager&lt;/span&gt;.CreateMockedObject&amp;lt;&lt;span style="color:#2b91af;"&gt;TestedClass1&lt;/span&gt;&amp;gt;();

    &lt;span style="color:blue;"&gt;using &lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;RecordExpectations &lt;/span&gt;recorder = &lt;span style="color:#2b91af;"&gt;RecorderManager&lt;/span&gt;.StartRecording())
    {
        recorder.DefaultBehavior.CheckArguments();

        recorder.ExpectAndReturn(target.Dictionary[&lt;span style="color:#a31515;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;], trueObject);
        recorder.FailWhenCalled(target.Dictionary[&lt;span style="color:#a31515;"&gt;&amp;quot;false&amp;quot;&lt;/span&gt;]);
    }

    &lt;span style="color:blue;"&gt;object &lt;/span&gt;value = target.Method(&lt;span style="color:blue;"&gt;true&lt;/span&gt;);
    &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(trueObject, value);
}&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;Would simply fail with:&lt;/p&gt;&lt;pre style="border-right:thin outset;padding-right:10px;border-top:thin groove;padding-left:10px;background:#ffffff;overflow-x:auto;padding-bottom:10px;border-left:thin groove;padding-top:10px;border-bottom:thin outset;font-family:consolas;"&gt;Test method TestProject1.UnitTest1.TestMethod1 threw exception:  TypeMock.VerifyException: 
TypeMock Verification: Method TestProject1.TestedClass1.get_Dictionary() has 1 more expected calls
.&lt;/pre&gt;
&lt;p&gt;Now, it just passes.&lt;/p&gt;
&lt;h3&gt;&lt;a name="4AE00CEA88244120AD5592D9F5A29700"&gt;&lt;/a&gt;Debugger evaluation doesn&amp;#39;t change the test behavior&lt;/h3&gt;
&lt;p align="justify"&gt;Now you can debug your code without having to change your tests. You can query mocked values without influencing your tests.&lt;/p&gt;
&lt;p align="justify"&gt;You can do this and still have the test passing:&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://msmvps.com/blogs/paulomorgado/WindowsLiveWriter/8abca5b71786_14C3B/debugger%20support%5B5%5D.jpg" target="_blank"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="171" alt="Debugger Support" src="http://msmvps.com/blogs/paulomorgado/WindowsLiveWriter/8abca5b71786_14C3B/debugger%20support%5B5%5D_thumb.jpg" width="260" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h3&gt;&lt;a name="1E103F2BC92E4e7398CF5BDB8CB0ADBA"&gt;&lt;/a&gt;The debugger can be run inside a recording block without confusing the test&lt;/h3&gt;
&lt;p align="justify"&gt;You can now step into the recording block and debug it without affecting the recording process and the test.&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://msmvps.com/blogs/paulomorgado/WindowsLiveWriter/8abca5b71786_14C3B/Recording%20Block_2.jpg" target="_blank"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="57" alt="Recording Block" src="http://msmvps.com/blogs/paulomorgado/WindowsLiveWriter/8abca5b71786_14C3B/Recording%20Block_thumb.jpg" width="260" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h3&gt;&lt;a name="DEE27B7B05BD40559B05BDB47500279D"&gt;&lt;/a&gt;When you step in the debugger into a mocked method, the mocked method will be painted&lt;/h3&gt;
&lt;p&gt;When you step into a mocked method (or property) I&amp;#39;ll see that it&amp;#39;s mocked.&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://msmvps.com/blogs/paulomorgado/WindowsLiveWriter/8abca5b71786_14C3B/Visual%20Studio%20Cues_2.jpg" target="_blank"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="102" alt="Visual Studio Cues" src="http://msmvps.com/blogs/paulomorgado/WindowsLiveWriter/8abca5b71786_14C3B/Visual%20Studio%20Cues_thumb.jpg" width="260" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1531383" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualStudio/default.aspx">VisualStudio</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category></item><item><title>Typemock Insulator Is Typemock Isolator</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/02/05/typemock-insulator-is-typemock-isolator.aspx</link><pubDate>Tue, 05 Feb 2008 00:07:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1496252</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1496252</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1496252</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/02/05/typemock-insulator-is-typemock-isolator.aspx#comments</comments><description>&lt;p&gt;&lt;a class="" title="TypeMock Insulator 4.2 Beta Publicly Available" href="http://msmvps.com/controlpanel/blogs/.NET;%20SoftDev;%20Tools;%20VisualStudio;%20Testing;%20UnitTests;%20TypeMock"&gt;Yesterday&lt;/a&gt; I made a mistake with the name of the next version of &lt;a class="" href="http://www.typemock.com/" target="_blank"&gt;TypeMock&lt;/a&gt;. The real name is TypeMock Isolator. Whatever the name is, you should try it out.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1496252" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualStudio/default.aspx">VisualStudio</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category></item><item><title>TypeMock Insulator 4.2 Beta Publicly Available</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/02/03/typemock-insulator-4-2-beta-publicly-available.aspx</link><pubDate>Sun, 03 Feb 2008 22:16:17 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1494258</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1494258</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1494258</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/02/03/typemock-insulator-4-2-beta-publicly-available.aspx#comments</comments><description>&lt;p&gt;TypeMock (now called) Insulator 4.2 Beta is publicly available. Check out the &lt;a title="Typemock Insulator 4.2 release notes" href="http://www.typemock.com/Docs/UserGuide/index.php?topic=ReleaseNotes42.html" target="_blank"&gt;release notes&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;One of my favorite new features is the improved mock chaining.&lt;/p&gt; &lt;p&gt;Take this class to be tested:&lt;/p&gt;&lt;pre style="border-right:thin outset;padding-right:10px;border-top:thin groove;padding-left:10px;background:#ffffff;overflow-x:auto;padding-bottom:10px;border-left:thin groove;padding-top:10px;border-bottom:thin outset;font-family:consolas;"&gt;&lt;span style="color:blue;"&gt;public class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;TestedClass1
&lt;/span&gt;{
    &lt;span style="color:blue;"&gt;public &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IDictionary&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;, &lt;span style="color:blue;"&gt;object&lt;/span&gt;&amp;gt; Dictionary
    {
        &lt;span style="color:blue;"&gt;get &lt;/span&gt;{ &lt;span style="color:blue;"&gt;throw new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;NotImplementedException&lt;/span&gt;(); }
    }

    &lt;span style="color:blue;"&gt;public object &lt;/span&gt;Method(&lt;span style="color:blue;"&gt;bool &lt;/span&gt;cond)
    {
        &lt;span style="color:blue;"&gt;if &lt;/span&gt;(cond)
        {
            &lt;span style="color:blue;"&gt;return &lt;/span&gt;Dictionary[&lt;span style="color:#a31515;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;];
        }
        &lt;span style="color:blue;"&gt;else
        &lt;/span&gt;{
            &lt;span style="color:blue;"&gt;return &lt;/span&gt;Dictionary[&lt;span style="color:#a31515;"&gt;&amp;quot;false&amp;quot;&lt;/span&gt;];
        }
    }
}&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;The following test:&lt;/p&gt;&lt;pre style="border-right:thin outset;padding-right:10px;border-top:thin groove;padding-left:10px;background:#ffffff;overflow-x:auto;padding-bottom:10px;border-left:thin groove;padding-top:10px;border-bottom:thin outset;font-family:consolas;"&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]
[&lt;span style="color:#2b91af;"&gt;VerifyMocks&lt;/span&gt;]
&lt;span style="color:blue;"&gt;public void &lt;/span&gt;TestMethod1()
{
    &lt;span style="color:blue;"&gt;object &lt;/span&gt;trueObject = &lt;span style="color:blue;"&gt;new object&lt;/span&gt;();
    &lt;span style="color:blue;"&gt;object &lt;/span&gt;falseObject = &lt;span style="color:blue;"&gt;new object&lt;/span&gt;();

    &lt;span style="color:#2b91af;"&gt;TestedClass1 &lt;/span&gt;target = &lt;span style="color:#2b91af;"&gt;RecorderManager&lt;/span&gt;.CreateMockedObject&amp;lt;&lt;span style="color:#2b91af;"&gt;TestedClass1&lt;/span&gt;&amp;gt;();

    &lt;span style="color:blue;"&gt;using &lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;RecordExpectations &lt;/span&gt;recorder = &lt;span style="color:#2b91af;"&gt;RecorderManager&lt;/span&gt;.StartRecording())
    {
        recorder.DefaultBehavior.CheckArguments();

        recorder.ExpectAndReturn(target.Dictionary[&lt;span style="color:#a31515;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;], trueObject);
        recorder.FailWhenCalled(target.Dictionary[&lt;span style="color:#a31515;"&gt;&amp;quot;false&amp;quot;&lt;/span&gt;]);
    }

    &lt;span style="color:blue;"&gt;object &lt;/span&gt;value = target.Method(&lt;span style="color:blue;"&gt;true&lt;/span&gt;);
    &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(trueObject, value);
}&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;Would simply fail with:&lt;/p&gt;&lt;pre style="border-right:thin outset;padding-right:10px;border-top:thin groove;padding-left:10px;background:#ffffff;overflow-x:auto;padding-bottom:10px;border-left:thin groove;padding-top:10px;border-bottom:thin outset;font-family:consolas;"&gt;Test method TestProject1.UnitTest1.TestMethod1 threw exception:  TypeMock.VerifyException: 
TypeMock Verification: Method TestProject1.TestedClass1.get_Dictionary() has 1 more expected calls
.&lt;/pre&gt;
&lt;p&gt;Now, it just passes.&lt;/p&gt;
&lt;p&gt;Visual Studio cues are nice too.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1494258" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualStudio/default.aspx">VisualStudio</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category></item><item><title>POUT - That's The Way I Like It</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/02/03/pout-that-s-the-way-i-like-it.aspx</link><pubDate>Sun, 03 Feb 2008 15:33:07 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1494054</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1494054</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1494054</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/02/03/pout-that-s-the-way-i-like-it.aspx#comments</comments><description>&lt;p align="center"&gt;&lt;font size="5"&gt;&lt;strong&gt;POUT - Plain Old Unit Testing&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="justify"&gt;Read all about it &lt;a title="TDD or POUT" href="http://theruntime.com/blogs/jacob/archive/2008/01/31/tdd-or-pout.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1494054" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category></item><item><title>TDD Proven Effective! Or is it? - by Jacob Proffitt</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/02/03/tdd-proven-effective-or-is-it-by-jacob-proffitt.aspx</link><pubDate>Sun, 03 Feb 2008 15:17:57 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1494050</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1494050</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1494050</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/02/03/tdd-proven-effective-or-is-it-by-jacob-proffitt.aspx#comments</comments><description>&lt;p align="justify"&gt;&lt;a title="Jacob Proffitt - Intemperate rantings from a passionate developer, sometimes manager, and general all-round techno-geek." href="http://theruntime.com/blogs/jacob/" target="_blank"&gt;Jacob Proffitt&lt;/a&gt; has &lt;a title="TDD Proven Effective! Or is it?" href="http://theruntime.com/blogs/jacob/archive/2008/01/22/tdd-proven-effective-or-is-it.aspx" target="_blank"&gt;some comments&lt;/a&gt; about the &lt;a title="On the Effectiveness of Test-first Approach to Programming" href="http://iit-iti.nrc-cnrc.gc.ca/publications/nrc-47445_e.html" target="_blank"&gt;the paper on the effectiveness of test-first approach to programming&lt;/a&gt;.&lt;/p&gt; &lt;p align="justify"&gt;Here are a few excerpts:&lt;/p&gt; &lt;blockquote style="border-right:1px outset;padding-right:10px;border-top:1px groove;padding-left:10px;border-left:1px groove;border-bottom:1px outset;"&gt; &lt;p align="justify"&gt;If you&amp;#39;re like me, you understand the problem better after implementing it and can thus create more relevant tests after the fact than before. I know better where the important edge-cases are and how to expose them and that could mean that my tests are more robust.&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote style="border-right:1px outset;padding-right:10px;border-top:1px groove;padding-left:10px;border-left:1px groove;border-bottom:1px outset;"&gt; &lt;p align="justify"&gt;Anyway, without question, testing first leads to having more tests per functional unit. The question is if this is valuable.&lt;/p&gt;&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1494050" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category></item><item><title>TypeMock: How to Make Reflective Mocks More Natural</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/01/31/typemock-how-to-make-reflective-mocks-more-natural.aspx</link><pubDate>Thu, 31 Jan 2008 23:56:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1489214</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1489214</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1489214</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/01/31/typemock-how-to-make-reflective-mocks-more-natural.aspx#comments</comments><description>&lt;p&gt;Like I &lt;a title="TypeMock: Making Reflective Mocks More Natural" href="http://msmvps.com/blogs/paulomorgado/archive/2008/01/29/typemock-making-reflective-mocks-more-natural.aspx" target="_blank"&gt;said before&lt;/a&gt;, this as been on the back of my mind for a while.&lt;/p&gt;
&lt;p&gt;A while back &lt;a class="" title="Getting MethodInfo using LINQ" href="http://msmvps.com/blogs/paulomorgado/archive/2007/03/23/getting-methodinfo-using-linq.aspx" target="_blank"&gt;I introduced a way to get the MethodInfo&lt;/a&gt; of a method in a strongly typed way using &lt;a title="The LINQ Project" href="http://msdn2.microsoft.com/netframework/aa904594.aspx" target="_blank"&gt;LINQ&lt;/a&gt;, and that&amp;#39;s how I&amp;#39;m going to make &lt;a title="Overview" href="http://www.typemock.com/Docs/UserGuide/OverView.html" target="_blank"&gt;Reflective Mocks&lt;/a&gt; more &lt;a title="Natural TypeMocks™" href="http://www.typemock.com/Docs/UserGuide/NaturalMocks.html" target="_blank"&gt;Natural&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Well, it&amp;#39;s as easy as this:&lt;/p&gt;&lt;pre style="BORDER-RIGHT:thin outset;PADDING-RIGHT:10px;BORDER-TOP:thin groove;PADDING-LEFT:10px;BACKGROUND:#ffffff;OVERFLOW-X:auto;PADDING-BOTTOM:10px;BORDER-LEFT:thin groove;PADDING-TOP:10px;BORDER-BOTTOM:thin outset;FONT-FAMILY:consolas;"&gt;&lt;span style="COLOR:blue;"&gt;public static class &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;MockExtender
&lt;/span&gt;{
    &lt;span style="COLOR:blue;"&gt;public static &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;IParameters &lt;/span&gt;ExpectAndReturn&amp;lt;T1, T2, TResult&amp;gt;(&lt;span style="COLOR:blue;"&gt;this &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;IMockControl &lt;/span&gt;mock, &lt;span style="COLOR:#2b91af;"&gt;Expression&lt;/span&gt;&amp;lt;&lt;span style="COLOR:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;T1, T2, TResult&amp;gt;&amp;gt; expression, &lt;span style="COLOR:blue;"&gt;object &lt;/span&gt;ret, &lt;span style="COLOR:blue;"&gt;params &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;Type&lt;/span&gt;[] genericTypes)
    {
        &lt;span style="COLOR:blue;"&gt;return &lt;/span&gt;mock.ExpectAndReturn((expression.Body &lt;span style="COLOR:blue;"&gt;as &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;MethodCallExpression&lt;/span&gt;).Method.Name, ret, genericTypes);
    }
}&lt;/pre&gt;
&lt;p align="justify"&gt;(For now, I&amp;#39;ll leave to someone else the implementation of the rest of the overloads)&lt;/p&gt;
&lt;p align="justify"&gt;With this implementation it&amp;#39;s possible to handle static classes (a limitation of &lt;a title="iridescence.no" href="http://www.iridescence.no/" target="_blank"&gt;Fredrik&lt;/a&gt;&amp;#39;s &lt;a title="A Type Safe ExpectCall Extension Method for Reflective TypeMocks" href="http://www.iridescence.no/Posts/A-Type-Safe-ExpectCall-Extension-Method-for-Reflective-TypeMocks.aspx" target="_blank"&gt;implementation&lt;/a&gt;).&lt;/p&gt;
&lt;p align="justify"&gt;As for private methods, just let &lt;a title="Visual Studio Developer Center" href="http://msdn2.microsoft.com/en-us/vstudio/default.aspx" target="_blank"&gt;Visual Studio&lt;/a&gt; (2008, in this sample) and &lt;a title="TypeMock™ - Simplify Unit Testing" href="http://www.typemock.com/" target="_blank"&gt;TypeMock&lt;/a&gt; do their magic.&lt;/p&gt;
&lt;p align="justify"&gt;So, to test this class:&lt;/p&gt;&lt;pre style="BORDER-RIGHT:thin outset;PADDING-RIGHT:10px;BORDER-TOP:thin groove;PADDING-LEFT:10px;BACKGROUND:#ffffff;OVERFLOW-X:auto;PADDING-BOTTOM:10px;BORDER-LEFT:thin groove;PADDING-TOP:10px;BORDER-BOTTOM:thin outset;FONT-FAMILY:consolas;"&gt;&lt;span style="COLOR:blue;"&gt;public static class &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;Class1
&lt;/span&gt;{
    &lt;span style="COLOR:blue;"&gt;public static string &lt;/span&gt;PublicMethod(&lt;span style="COLOR:blue;"&gt;string &lt;/span&gt;param1, &lt;span style="COLOR:blue;"&gt;int &lt;/span&gt;param2)
    {
        &lt;span style="COLOR:blue;"&gt;return &lt;/span&gt;PrivateMethod(param2, param1);
    }

    &lt;span style="COLOR:blue;"&gt;private static string &lt;/span&gt;PrivateMethod(&lt;span style="COLOR:blue;"&gt;int &lt;/span&gt;param2, &lt;span style="COLOR:blue;"&gt;string &lt;/span&gt;param1)
    {
        &lt;span style="COLOR:blue;"&gt;throw new &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;NotImplementedException&lt;/span&gt;();
    }
}&lt;/pre&gt;
&lt;p&gt;We just write this test:&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;&lt;pre style="BORDER-RIGHT:thin outset;PADDING-RIGHT:10px;BORDER-TOP:thin groove;PADDING-LEFT:10px;BACKGROUND:#ffffff;OVERFLOW-X:auto;PADDING-BOTTOM:10px;BORDER-LEFT:thin groove;PADDING-TOP:10px;BORDER-BOTTOM:thin outset;FONT-FAMILY:consolas;"&gt;[&lt;span style="COLOR:#2b91af;"&gt;TestMethod&lt;/span&gt;()]
&lt;span style="COLOR:blue;"&gt;public void &lt;/span&gt;PublicMethodTest()
{
    &lt;span style="COLOR:blue;"&gt;string &lt;/span&gt;param1 = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;param&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;int &lt;/span&gt;param2 = 5;
    &lt;span style="COLOR:blue;"&gt;string &lt;/span&gt;expected = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;return&amp;quot;&lt;/span&gt;;
    &lt;span style="COLOR:blue;"&gt;string &lt;/span&gt;actual;

    &lt;span style="COLOR:#2b91af;"&gt;Mock &lt;/span&gt;targetMock = &lt;span style="COLOR:#2b91af;"&gt;MockManager&lt;/span&gt;.Mock(&lt;span style="COLOR:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="COLOR:#2b91af;"&gt;Class1&lt;/span&gt;));

    targetMock.ExpectAndReturn((&lt;span style="COLOR:blue;"&gt;int &lt;/span&gt;i, &lt;span style="COLOR:blue;"&gt;string &lt;/span&gt;s) =&amp;gt; ClassLibrary1.&lt;span style="COLOR:#2b91af;"&gt;Class1_Accessor&lt;/span&gt;.PrivateMethod(i, s), expected).Args(param2, param1);

    actual = &lt;span style="COLOR:#2b91af;"&gt;Class1&lt;/span&gt;.PublicMethod(param1, param2);

    &lt;span style="COLOR:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(expected, actual);
}&lt;/pre&gt;
&lt;p&gt;How about this for clean and simple?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1489214" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MVP/default.aspx">MVP</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category></item><item><title>TypeMock: Making Reflective Mocks More Natural</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/01/29/typemock-making-reflective-mocks-more-natural.aspx</link><pubDate>Tue, 29 Jan 2008 22:46:32 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1485992</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1485992</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1485992</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/01/29/typemock-making-reflective-mocks-more-natural.aspx#comments</comments><description>&lt;p&gt;I&amp;#39;ve been thinking about &lt;a title="A Type Safe ExpectCall Extension Method for Reflective TypeMocks" href="http://www.iridescence.no/Posts/A-Type-Safe-ExpectCall-Extension-Method-for-Reflective-TypeMocks.aspx" target="_blank"&gt;this&lt;/a&gt; for a while. Seems like &lt;a title="iridescence.no" href="http://www.iridescence.no/" target="_blank"&gt;someone&lt;/a&gt; beat me to it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1485992" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category></item><item><title>Is Testing The Ultimate Goal?</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/01/28/is-testing-the-ultimate-goal.aspx</link><pubDate>Mon, 28 Jan 2008 01:15:55 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1483320</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1483320</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1483320</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/01/28/is-testing-the-ultimate-goal.aspx#comments</comments><description>&lt;p&gt;Whenever you throw TDD without worshiping it you turn yourself immediately in a victim of religious fundamentalists. TDD is a gift from god, it&amp;#39;s good, it&amp;#39;s cool and should never be questioned. It&amp;#39;s a dogma.&lt;/p&gt; &lt;p&gt;&lt;a title="Frans Bouma&amp;#39;s blog" href="http://weblogs.asp.net/fbouma/" target="_blank"&gt;Frans Bouma&lt;/a&gt; &lt;a title="The waterfall which makes Agile pundits go blind" href="http://weblogs.asp.net/fbouma/archive/2008/01/11/the-waterfall-which-makes-agile-pundits-go-blind.aspx" target="_blank"&gt;complains&lt;/a&gt; about it and the lack of scientific proof of the fact that TDD is really useful and good. &lt;a title="you&amp;#39;ve been HAACKED" href="http://haacked.com/" target="_blank"&gt;Phil Haack&lt;/a&gt;&amp;nbsp;&lt;a title="On the Effectiveness of Test-first Approach to Programming" href="http://iit-iti.nrc-cnrc.gc.ca/publications/nrc-47445_e.html" target="_blank"&gt;throws a paper&lt;/a&gt; at him (which I haven&amp;#39;t read - just looked at) but, from his own comments, doesn&amp;#39;t dismiss Frans&amp;#39;s point.&lt;/p&gt; &lt;p&gt;Why are we testing code anyway? What does it prove? &lt;a title="Correctness provability should be the goal, not testability" href="http://weblogs.asp.net/fbouma/archive/2007/11/14/correctness-provability-should-be-the-goal-not-testability.aspx" target="_blank"&gt;According to Frans&lt;/a&gt;, not much. I&amp;#39;ll have to agree with Frans on this. In summary, first you need to prove (or have proof) that what you are going to code is the right thing. Only then you can prove that you&amp;#39;ve done it correctly.&lt;/p&gt; &lt;p&gt;This goes even further when frameworks like &lt;a title="TypeMock&amp;trade; - Simplify Unit Testing" href="http://www.typemock.com/" target="_blank"&gt;TypeMock&lt;/a&gt; are considered too powerful. They are seen as evil in the eyes of the purists. &lt;a title="ISerializable - Roy Osherove&amp;#39;s Blog" href="http://weblogs.asp.net/rosherove/" target="_blank"&gt;Roy Osherove&lt;/a&gt; questions &lt;a title="Is Typemock too powerful? Will it kill design for testability?" href="http://weblogs.asp.net/rosherove/archive/2008/01/17/is-typemock-too-powerful-will-it-kill-design-for-testability.aspx" target="_blank"&gt;his readers&lt;/a&gt; and &lt;a title="Will Typemock make you stop designing for testability?" target="_blank"&gt;TypeMock community&lt;/a&gt; about this.&lt;/p&gt; &lt;p&gt;While we have to have in mind Frans&amp;#39; &lt;a title="Correctness provability should be the goal, not testability" href="http://weblogs.asp.net/fbouma/archive/2007/11/14/correctness-provability-should-be-the-goal-not-testability.aspx" target="_blank"&gt;post about correctness provability&lt;/a&gt;, Travis does make a good point when he questions &amp;quot;&lt;a title="Designing for Testability with TypeMock" href="http://www.paraesthesia.com/archive/2008/01/14/designing-for-testability-with-typemock.aspx" target="_blank"&gt;Design for testability vs. API as a deliverable&lt;/a&gt;&amp;quot;.&lt;/p&gt; &lt;p&gt;My bottom line in this subject is that testing tools are just tools like any other tools use in software development. The fact that they are becoming so good and powerful just changes what tools we use and how we use them.&lt;/p&gt; &lt;p&gt;I like compiled languages because they give me confidence over interpreted languages, because I can assert that although my code might have some errors on what it does it doesn&amp;#39;t have any errors on how it was written.&lt;/p&gt; &lt;p&gt;On another level, unit testing and mock frameworks give me confidence that my code will do exactly what I intended it to do. Which might still not be correct.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1483320" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category></item><item><title>TypeMock Basic Introduction Screencast at Facebook</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/01/27/typemock-basic-introduction-screencast-at-facebook.aspx</link><pubDate>Sun, 27 Jan 2008 22:42:19 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1483120</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1483120</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1483120</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/01/27/typemock-basic-introduction-screencast-at-facebook.aspx#comments</comments><description>&lt;p&gt;&lt;a title="ISerializable - Roy Osherove&amp;#39;s Blog" href="http://weblogs.asp.net/rosherove/" target="_blank"&gt;Roy Osherove&lt;/a&gt; done a &lt;a href="http://typemock.com/Learn/TypeMockBasics1.wmv" target="_blank"&gt;nice introductory 10 minute screencast&lt;/a&gt; that shows some basic features in &lt;a title="TypeMock&amp;trade; - Simplify Unit Testing" href="http://www.typemock.com/" target="_blank"&gt;TypeMock&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1483120" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category></item></channel></rss>