<?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>Search results for 'app:weblogs' matching tags 'Tools', 'Architecture', and 'testing'</title><link>http://msmvps.com/search/SearchResults.aspx?q=app:weblogs&amp;tag=Tools,Architecture,testing&amp;orTags=0&amp;o=DateDescending</link><description>Search results for 'app:weblogs' matching tags 'Tools', 'Architecture', and 'testing'</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>T-4 Templates for ASP.NET Web Form Databound Control Friendly Logical Layers</title><link>http://msmvps.com/blogs/jalam/archive/2011/01/13/t-4-templates-for-asp-net-web-form-databound-control-friendly-logical-layers.aspx</link><pubDate>Thu, 13 Jan 2011 06:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1786305</guid><dc:creator>jalam</dc:creator><description>&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/ashraful/Capture_00E47CCF.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Capture" border="0" alt="Capture" src="http://weblogs.asp.net/blogs/ashraful/Capture_thumb_3EED71B3.png" width="644" height="362" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I just released an open source project at &lt;a href="http://t4ef.codeplex.com/releases/view/59044" target="_blank"&gt;codeplex&lt;/a&gt;, which includes a set of T-4 templates to enable you to build logical layers (i.e. DAL/BLL) with just few clicks! The logical layers implemented here are&amp;#160; based on Entity Framework 4.0, ASP.NET Web Form Data Bound control friendly and fully unit testable.&lt;/p&gt;  &lt;p&gt;In this open source project you will get Entity Framework 4.0 based T-4 templates for following types of logical layers: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Data Access Layer:&lt;/b&gt; Entity Framework 4.0 provides excellent ORM data access layer. It also includes support for T-4 templates, as built-in code generation strategy in Visual Studio 2010, where we can customize default structure of data access layer based on Entity Framework. default structure of data access layer has been enhanced to get support for mock testing in Entity Framework 4.0 object model. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Business Logic Layer:&lt;/b&gt; ASP.NET web form based data bound control friendly business logic layer, which will enable you few clicks to build data bound web applications on top of ASP.NET Web Form and Entity Framework 4.0 quickly with great support of mock testing. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/ashraful/Capture2_1F0A1285.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Capture2" border="0" alt="Capture2" src="http://weblogs.asp.net/blogs/ashraful/Capture2_thumb_3A0295F9.png" width="376" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://t4ef.codeplex.com/releases/59044/download/197087"&gt;Download&lt;/a&gt; it to make your web development productive. Enjoy!&lt;/p&gt;</description></item><item><title>TypeMocks™ 4.0.0 is now available</title><link>http://msmvps.com/blogs/paulomorgado/archive/2007/05/20/typemock-net-4-0-0-is-now-available.aspx</link><pubDate>Sun, 20 May 2007 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:915315</guid><dc:creator>paulo</dc:creator><description>&lt;p&gt;&lt;a title="Version 4.0.0 is now available" href="http://fdaction:?fdactionkey=632qP7CRnr&amp;amp;action=gotopostlink&amp;amp;feedid=768228CA-B15A-415F-8FEA-E796CF207561&amp;amp;postid=7B29673C-0E44-401E-A585-6D7C95CF53B9&amp;amp;markpostread=1" target="_blank"&gt;TypeMocks™ 4.0.0 is now available&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;In&amp;nbsp;my &lt;a title="Unit Testing and Mock Frameworks" href="http://msmvps.com/blogs/paulomorgado/archive/2007/02/17/unit-testing-and-mock-frameworks.aspx" target="_blank"&gt;previous analysis&lt;/a&gt; mentioned two drwanbacks of this mocking framework:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;The lack of a mocking scope.  &lt;li&gt;The lack of the use of &lt;a title="Overview of Generics in the .NET Framework" href="http://msdn2.microsoft.com/en-us/library/ms172193.aspx" target="_blank"&gt;Generics&lt;/a&gt;&amp;nbsp;in its APIs.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Let&amp;#39;s start with the second one.&lt;/p&gt; &lt;h3&gt;Generic Reflective API&lt;/h3&gt; &lt;p&gt;&lt;strong&gt;TypeMocks™&lt;/strong&gt; was the same tool for both the .NET 1.1 and the .NET 2.0 runtimes and they were avoiding the need to have two tools. But we already need two runtimes and two IDEs, so two versions of &lt;strong&gt;TypeMocks™&lt;/strong&gt; isn&amp;#39;t such an hassle. I&amp;#39;m glad they came to their senses &lt;a title="The First Mock (using generic helper)" href="http://www.typemock.com/Docs/UserGuide/index.php?topic=FirstMockUsingGenericHelper.html" target="_blank"&gt;about this&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Befere this new API, the usage of mocks was something like this:&lt;/p&gt; &lt;div class="quote"&gt; &lt;div style="border-right:#bcbcbc 1px solid;padding-right:10px;border-top:#bcbcbc 1px solid;padding-left:10px;font-size:10pt;background:white;padding-bottom:10px;border-left:#bcbcbc 1px solid;color:black;padding-top:10px;border-bottom:#bcbcbc 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;;"&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;MockObject&lt;/span&gt; mockObject = &lt;span style="color:#2b91af;"&gt;MockManager&lt;/span&gt;.MockObject(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;IIdentity&lt;/span&gt;));&lt;/p&gt; &lt;p style="margin:0px;"&gt;mockObject.ExpectGetAlways(&lt;span style="color:#a31515;"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;&amp;quot;username&amp;quot;&lt;/span&gt;);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;IIdentity&lt;/span&gt; identity = (&lt;span style="color:#2b91af;"&gt;IIdentity&lt;/span&gt;)(mockObject.Object);&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Now, it&amp;#39;s more like this:&lt;/p&gt; &lt;div class="quote"&gt; &lt;div style="border-right:#bcbcbc 1px solid;padding-right:10px;border-top:#bcbcbc 1px solid;padding-left:10px;font-size:10pt;background:white;padding-bottom:10px;border-left:#bcbcbc 1px solid;color:black;padding-top:10px;border-bottom:#bcbcbc 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;;"&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;MockObject&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;IIdentity&lt;/span&gt;&amp;gt; mockObject = &lt;span style="color:#2b91af;"&gt;MockManager&lt;/span&gt;.MockObject&amp;lt;&lt;span style="color:#2b91af;"&gt;IIdentity&lt;/span&gt;&amp;gt;();&lt;/p&gt; &lt;p style="margin:0px;"&gt;mockObject.ExpectGetAlways(&lt;span style="color:#a31515;"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;&amp;quot;username&amp;quot;&lt;/span&gt;);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;IIdentity&lt;/span&gt; identity = mockObject.Object;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;You&amp;#39;ll have to agree with me that the changes in lines 1 and 3 improve the reliability and readability of the test code.&lt;/p&gt; &lt;h3&gt;Mocking Scope&lt;/h3&gt; &lt;p&gt;The need for this one may not be obvious, so let&amp;#39;s look at an example.&lt;/p&gt; &lt;p&gt;Imagine we are testing this class:&lt;/p&gt; &lt;div class="quote"&gt; &lt;div style="border-right:#bcbcbc 1px solid;padding-right:10px;border-top:#bcbcbc 1px solid;padding-left:10px;font-size:10pt;background:white;padding-bottom:10px;border-left:#bcbcbc 1px solid;color:black;padding-top:10px;border-bottom:#bcbcbc 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;;"&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;{&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt; value;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; TestedClass(&lt;span style="color:blue;"&gt;bool&lt;/span&gt; create)&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (create)&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.value = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ClassUsedByTestedClass&lt;/span&gt;().Value;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; Value&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;get&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.value;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;As you can see, &lt;b&gt;TestedClass&lt;/b&gt; uses &lt;b&gt;ClassUsedByTestedClass&lt;/b&gt;:&lt;/p&gt; &lt;div class="quote"&gt; &lt;div style="border-right:#bcbcbc 1px solid;padding-right:10px;border-top:#bcbcbc 1px solid;padding-left:10px;font-size:10pt;background:white;padding-bottom:10px;border-left:#bcbcbc 1px solid;color:black;padding-top:10px;border-bottom:#bcbcbc 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;;"&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ClassUsedByTestedClass&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;{&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; ClassUsedByTestedClass()&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;throw&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NotImplementedException&lt;/span&gt;();&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; Value&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;get&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;throw&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NotImplementedException&lt;/span&gt;();&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Now, take these two tests:&lt;/p&gt; &lt;div class="quote"&gt; &lt;div style="border-right:#bcbcbc 1px solid;padding-right:10px;border-top:#bcbcbc 1px solid;padding-left:10px;font-size:10pt;background:white;padding-bottom:10px;border-left:#bcbcbc 1px solid;color:black;padding-top:10px;border-bottom:#bcbcbc 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;;"&gt; &lt;p style="margin:0px;"&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;()]&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestMethod1()&lt;/p&gt; &lt;p style="margin:0px;"&gt;{&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;const&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; mockedValue = &lt;span style="color:#a31515;"&gt;&amp;quot;mocked value&amp;quot;&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;const&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; create = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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())&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;ClassUsedByTestedClass&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ClassUsedByTestedClass&lt;/span&gt;();&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt; v = c.Value;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; recorder.Return(mockedValue);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt; t = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt;(create);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(mockedValue, t.Value);&lt;/p&gt; &lt;p style="margin:0px;"&gt;}&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;()]&lt;/p&gt; &lt;p style="margin:0px;"&gt;[&lt;span style="color:#2b91af;"&gt;ExpectedException&lt;/span&gt;(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;NotImplementedException&lt;/span&gt;))]&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestMethod2()&lt;/p&gt; &lt;p style="margin:0px;"&gt;{&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;const&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; create = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt; t = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt;(create);&lt;/p&gt; &lt;p style="margin:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;These two tests will fail because the value of &lt;strong&gt;create&lt;/strong&gt; in test one is wrong. To shield ourselves from this kind of mistakes, we can code the tests this way:&lt;/p&gt; &lt;div class="quote"&gt; &lt;div style="border-right:#bcbcbc 1px solid;padding-right:10px;border-top:#bcbcbc 1px solid;padding-left:10px;font-size:10pt;background:white;padding-bottom:10px;border-left:#bcbcbc 1px solid;color:black;padding-top:10px;border-bottom:#bcbcbc 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;;"&gt; &lt;p style="margin:0px;"&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;()]&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestMethod1()&lt;/p&gt; &lt;p style="margin:0px;"&gt;{&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;MockManager&lt;/span&gt;.ClearAll();&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;const&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; mockedValue = &lt;span style="color:#a31515;"&gt;&amp;quot;mocked value&amp;quot;&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;const&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; create = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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())&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;ClassUsedByTestedClass&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ClassUsedByTestedClass&lt;/span&gt;();&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt; v = c.Value;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; recorder.Return(mockedValue);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt; t = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt;(create);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(mockedValue, t.Value);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;MockManager&lt;/span&gt;.Verify();&lt;/p&gt; &lt;p style="margin:0px;"&gt;}&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;()]&lt;/p&gt; &lt;p style="margin:0px;"&gt;[&lt;span style="color:#2b91af;"&gt;ExpectedException&lt;/span&gt;(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;NotImplementedException&lt;/span&gt;))]&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestMethod2()&lt;/p&gt; &lt;p style="margin:0px;"&gt;{&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;MockManager&lt;/span&gt;.ClearAll();&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;const&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; create = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt; t = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt;(create);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;MockManager&lt;/span&gt;.Verify();&lt;/p&gt; &lt;p style="margin:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Now it&amp;#39;s clear that the wrong test is the first one. But I like to scope things using the &lt;strong&gt;using&lt;/strong&gt; statement, so, this is a better looking solution.&lt;/p&gt; &lt;div class="quote"&gt; &lt;div style="border-right:#bcbcbc 1px solid;padding-right:10px;border-top:#bcbcbc 1px solid;padding-left:10px;font-size:10pt;background:white;padding-bottom:10px;border-left:#bcbcbc 1px solid;color:black;padding-top:10px;border-bottom:#bcbcbc 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;;"&gt; &lt;p style="margin:0px;"&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;()]&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestMethod1()&lt;/p&gt; &lt;p style="margin:0px;"&gt;{&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MockScope&lt;/span&gt;())&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;const&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; mockedValue = &lt;span style="color:#a31515;"&gt;&amp;quot;mocked value&amp;quot;&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;const&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; create = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &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())&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;ClassUsedByTestedClass&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ClassUsedByTestedClass&lt;/span&gt;();&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt; v = c.Value;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; recorder.Return(mockedValue);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt; t = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt;(create);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(mockedValue, t.Value);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;}&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;()]&lt;/p&gt; &lt;p style="margin:0px;"&gt;[&lt;span style="color:#2b91af;"&gt;ExpectedException&lt;/span&gt;(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;NotImplementedException&lt;/span&gt;))]&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestMethod2()&lt;/p&gt; &lt;p style="margin:0px;"&gt;{&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MockScope&lt;/span&gt;())&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;const&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; create = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt; t = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt;(create);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;I would be very happy with this last solution. But both these two solutions have have too much mocking infrastruture coded in the test code and, because the people at &lt;strong&gt;TypeMocks™&lt;/strong&gt; aren&amp;#39;t in the market of just making me happy, they came up with a better solution (available on Professional and Enterprise Editions only):&lt;/p&gt; &lt;div class="quote"&gt; &lt;div style="border-right:#bcbcbc 1px solid;padding-right:10px;border-top:#bcbcbc 1px solid;padding-left:10px;font-size:10pt;background:white;padding-bottom:10px;border-left:#bcbcbc 1px solid;color:black;padding-top:10px;border-bottom:#bcbcbc 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;;"&gt; &lt;p style="margin:0px;"&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;()]&lt;/p&gt; &lt;p style="margin:0px;"&gt;[&lt;span style="color:#2b91af;"&gt;VerifyMocks&lt;/span&gt;]&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestMethod1()&lt;/p&gt; &lt;p style="margin:0px;"&gt;{&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;const&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; mockedValue = &lt;span style="color:#a31515;"&gt;&amp;quot;mocked value&amp;quot;&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;const&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; create = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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())&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;ClassUsedByTestedClass&lt;/span&gt; c = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ClassUsedByTestedClass&lt;/span&gt;();&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;string&lt;/span&gt; v = c.Value;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; recorder.Return(mockedValue);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt; t = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt;(create);&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(mockedValue, t.Value);&lt;/p&gt; &lt;p style="margin:0px;"&gt;}&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;()]&lt;/p&gt; &lt;p style="margin:0px;"&gt;[&lt;span style="color:#2b91af;"&gt;ExpectedException&lt;/span&gt;(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;NotImplementedException&lt;/span&gt;))]&lt;/p&gt; &lt;p style="margin:0px;"&gt;[&lt;span style="color:#2b91af;"&gt;VerifyMocks&lt;/span&gt;]&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; TestMethod2()&lt;/p&gt; &lt;p style="margin:0px;"&gt;{&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;const&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; create = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt; t = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt;(create);&lt;/p&gt; &lt;p style="margin:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;And do you know what they called this? &lt;strong&gt;Best Practices Patterns&lt;/strong&gt;.&lt;/p&gt; &lt;h3&gt;Generic Test Decorator&lt;/h3&gt; &lt;p&gt;&lt;strong&gt;TypeMocks™&lt;/strong&gt; is more than just a mocking framework, and it now enables writing custom test decorators. These are test framework agnostic and it is simple to add more features to your tests. Now you can write your own version of &lt;strong&gt;VerifyMocksAttribute&lt;/strong&gt; and &lt;strong&gt;ClearMocksAttribute&lt;/strong&gt; (available on Enterprise Edidion only).&lt;/p&gt; &lt;h3&gt;Mock Signed Internal Interfaces&lt;/h3&gt; &lt;p&gt;It&amp;#39;s now possible to &lt;a title="Mock Signed Internal Interfaces" href="http://www.typemock.com/Docs/UserGuide/index.php?topic=DynamicMockObject.html" target="_blank"&gt;mock internal interfaces in signed assemblies&lt;/a&gt;.&lt;/p&gt; &lt;h3&gt;Enhancements to &lt;strong&gt;Natural TypeMocks™&lt;/strong&gt;&lt;/h3&gt; &lt;p&gt;It is now possible to create return values within the recording block, saving even more time and having an easier flow.&lt;/p&gt; &lt;p&gt;Before you had to do this:&lt;/p&gt; &lt;div class="quote"&gt; &lt;div style="border-right:#bcbcbc 1px solid;padding-right:10px;border-top:#bcbcbc 1px solid;padding-left:10px;font-size:10pt;background:white;padding-bottom:10px;border-left:#bcbcbc 1px solid;color:black;padding-top:10px;border-bottom:#bcbcbc 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;;"&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt; d = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;(2007, 5, 20);&lt;/p&gt; &lt;p style="margin:0px;"&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())&lt;/p&gt; &lt;p style="margin:0px;"&gt;{&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt; mc = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt;(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;());&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt; v = mc.Value;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; recorder.Return(d);&lt;/p&gt; &lt;p style="margin:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Now you can just do this:&lt;/p&gt; &lt;div class="quote"&gt; &lt;div style="border-right:#bcbcbc 1px solid;padding-right:10px;border-top:#bcbcbc 1px solid;padding-left:10px;font-size:10pt;background:white;padding-bottom:10px;border-left:#bcbcbc 1px solid;color:black;padding-top:10px;border-bottom:#bcbcbc 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;;"&gt; &lt;p style="margin:0px;"&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())&lt;/p&gt; &lt;p style="margin:0px;"&gt;{&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt; mc = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TestedClass&lt;/span&gt;(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;());&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt; v = mc.Value;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; recorder.Return(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;(2007, 5, 20));&lt;/p&gt; &lt;p style="margin:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;There&amp;#39;s also a &lt;strong&gt;ReturnDefaultImplementation&lt;/strong&gt; method in the &lt;strong&gt;RecordExpectations&lt;/strong&gt; class that returns a mock that has default behavior.&lt;/p&gt; &lt;p&gt;.. and several other enhancements and bug fixes.&lt;/p&gt;</description></item></channel></rss>