<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DEQAQno9fip7ImA9WxJbEE4.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450</id><updated>2009-07-19T13:45:43.466-07:00</updated><title>The Typemock Insider Blog</title><subtitle type="html">This blog is about .Net Unit Testing and TDD with Typemock's tools for software development. Isolator is mock framework or isolation framework and Racer is tool for solving deadlocks.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.typemock.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.typemock.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Roy Osherove</name><uri>http://www.blogger.com/profile/10889682616497587473</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>277</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/Typemock" type="application/atom+xml" /><feedburner:emailServiceId>Typemock</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry gd:etag="W/&quot;DEQAQnozeCp7ImA9WxJbEE4.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-533977227311175596</id><published>2009-07-19T13:32:00.000-07:00</published><updated>2009-07-19T13:45:43.480-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-19T13:45:43.480-07:00</app:edited><title>Typemock'ing in the park</title><content type="html">Last week we had a company fun day - we all took the day off and met in the park for beers, games and barbecue! We all brought our spoues, children and favorite drinks, and had a hell of a time!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can see a couple of pictures below. The full album is on Picasa: &lt;a href="http://picasaweb.google.com/doron.peretz/TypemockFunDay#"&gt;http://picasaweb.google.com/doron.peretz/TypemockFunDay#&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://1.bp.blogspot.com/_NRRRv_E4MFk/SmOEsQ6Cy-I/AAAAAAAACk0/h0odetbbhKk/s320/IMG_0279.JPG" style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5360273877488552930" /&gt;&lt;img src="http://3.bp.blogspot.com/_NRRRv_E4MFk/SmOEslhXxkI/AAAAAAAAClE/6rnF2rGQE-s/s320/IMG_0284.JPG" style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5360273883022214722" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-533977227311175596?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=s7ViTcAsFHs:keVjlj6OAtU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/s7ViTcAsFHs" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/533977227311175596?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/533977227311175596?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/s7ViTcAsFHs/typemocking-in-park.html" title="Typemock'ing in the park" /><author><name>Doron</name><uri>http://www.blogger.com/profile/13185101479718644339</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06157075945476037805" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_NRRRv_E4MFk/SmOEsQ6Cy-I/AAAAAAAACk0/h0odetbbhKk/s72-c/IMG_0279.JPG" height="72" width="72" /><feedburner:origLink>http://blog.typemock.com/2009/07/typemocking-in-park.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8ARXo8eip7ImA9WxJUFEQ.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-1598332820678026898</id><published>2009-07-13T07:20:00.001-07:00</published><updated>2009-07-13T07:20:44.472-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-13T07:20:44.472-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Unit test" /><category scheme="http://www.blogger.com/atom/ns#" term="MSTest" /><category scheme="http://www.blogger.com/atom/ns#" term="NUnit" /><category scheme="http://www.blogger.com/atom/ns#" term="TDD" /><title>Practice what you preach</title><content type="html">&lt;p&gt;If you’re reading this blog you probably know that Typemock Isolator is about unit testing and TDD but its more then that, Typemock products are developed using agile methodologies – in fact today we’ve passed the&lt;strong&gt; 2500 tests&lt;/strong&gt; mark!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_xBtHhN4kUkQ/SltCtA734vI/AAAAAAAACvE/u5spB6f1kOw/s1600-h/clip_image001%5B5%5D%5B2%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001[5]" border="0" alt="clip_image001[5]" src="http://lh4.ggpht.com/_xBtHhN4kUkQ/SltCuT93_FI/AAAAAAAACvI/fetpvgPGGBY/clip_image001%5B5%5D_thumb.gif?imgmax=800" width="240" height="205" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Typemock Isolator has more than 2500 unit and integration tests that we run using NUnit and MSTest testing framework that help us keep our product healthy and running.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-1598332820678026898?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=ZY-wYE28QyQ:9JXNQusX3U8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/ZY-wYE28QyQ" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/1598332820678026898?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/1598332820678026898?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/ZY-wYE28QyQ/practice-what-you-preach.html" title="Practice what you preach" /><author><name>Dror Helper</name><uri>http://www.blogger.com/profile/04664241287712801778</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="14941583444711874923" /></author><feedburner:origLink>http://blog.typemock.com/2009/07/practice-what-you-preach.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8HRXo-fyp7ImA9WxJUFEo.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-387375594552387304</id><published>2009-07-12T04:05:00.001-07:00</published><updated>2009-07-13T00:40:34.457-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-13T00:40:34.457-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Webinar" /><title>Typemock Webinar on Jul-15 - Unit Testing SharePoint</title><content type="html">&lt;p&gt;We’re starting a bi-weekly webinar. The first is on Wednesday, July 15th, and is going to be about unit testing SharePoint. We’re doing a repeat on the same day, so it’s going to be one for each hemisphere. &lt;/p&gt;  &lt;p&gt;I encourage you to get one or two peers that don’t know about Isolator, and invite them to the webinar. If SharePoint is your thing, it’s the right time to start unit testing (if you haven’t already).&lt;/p&gt;  &lt;p&gt;Here’s the complete text:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Unit testing SharePoint – The only way to do it&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Join us for a Webinar on July 15&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Typemock invites you to its ”Unit testing SharePoint – The only way to do it” live webinar on July 15th, where a special live demonstration will take place on how to unit test SharePoint with Isolator - the only tool today that unit tests SharePoint applications.    &lt;br /&gt;Developers who will attend this webinar, will realize how simple, easy and fast it is to unit test their SharePoint applications, release code with fewer bugs and spend less time on debugging.     &lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;This webinar will include:&lt;/strong&gt;     &lt;br /&gt;• Guidance on what needs to be tested in when unit testing SharePoint.     &lt;br /&gt;• Different methods of dealing with the challenges of Unit testing SharePoint applications.     &lt;br /&gt;• How eliminating the need for a Database, just for the testing, helps to simplify the writing of unit tests.     &lt;br /&gt;• A demo on how to test Web-Parts and administration code.     &lt;br /&gt;• Q&amp;amp;A session     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Here are the links for registration. We have space limited so sign up now.&lt;/p&gt;  &lt;p&gt;1st seating &lt;a href="https://www2.gotomeeting.com/register/784807843"&gt;registration&lt;/a&gt;:&amp;#160; 8:00 AM - 9:00 AM GMT&lt;/p&gt;  &lt;p&gt;2nd seating &lt;a href="https://www2.gotomeeting.com/register/630574842"&gt;registration&lt;/a&gt;: 2:00 PM - 3:00 PM GMT&amp;#160; (which is 10:00 AM EST)&lt;/p&gt;  &lt;p&gt;See you all there!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-387375594552387304?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=uR7m1lCiMkk:zpLazKdaIAw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/uR7m1lCiMkk" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/387375594552387304?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/387375594552387304?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/uR7m1lCiMkk/typemock-webinar-on-jul-15-unit-testing.html" title="Typemock Webinar on Jul-15 - Unit Testing SharePoint" /><author><name>Gil Zilberfeld</name><uri>http://www.blogger.com/profile/18210181375618736629</uri><email>Gil.Zilberfeld@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="14153621667886631279" /></author><feedburner:origLink>http://blog.typemock.com/2009/07/typemock-webinar-on-jul-15-unit-testing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8ERng4cCp7ImA9WxJUE0Q.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-3129402348916725895</id><published>2009-07-12T04:02:00.003-07:00</published><updated>2009-07-12T04:06:47.638-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-12T04:06:47.638-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Racer" /><title>Yet Another Racer Review</title><content type="html">&lt;p&gt;And another Typemock Racer &lt;a href="http://www.sipsfromthefirehose.net/blog/?p=68"&gt;review&lt;/a&gt; emerges.&lt;/p&gt;  &lt;p&gt;Thanks, &lt;a href="http://www.sipsfromthefirehose.net/blog/"&gt;Bill Craun&lt;/a&gt;! I really appreciate the time you put into the review.&lt;/p&gt;  &lt;p&gt;Just to remind everyone, you can &lt;a href="http://www.typemock.com/Downloads.php" target="_blank"&gt;download&lt;/a&gt; Racer and find out what it can do for you.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-3129402348916725895?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=4gKiplRgg3k:awOPaDwJ-MM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/4gKiplRgg3k" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/3129402348916725895?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/3129402348916725895?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/4gKiplRgg3k/yet-another-racer-review_12.html" title="Yet Another Racer Review" /><author><name>Gil Zilberfeld</name><uri>http://www.blogger.com/profile/18210181375618736629</uri><email>Gil.Zilberfeld@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="14153621667886631279" /></author><feedburner:origLink>http://blog.typemock.com/2009/07/yet-another-racer-review_12.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIMR3w4eyp7ImA9WxJVGUg.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-6829335539781857173</id><published>2009-07-07T00:43:00.001-07:00</published><updated>2009-07-07T00:43:06.233-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-07T00:43:06.233-07:00</app:edited><title>Parameterized Tests and RowTests</title><content type="html">&lt;p&gt;&lt;a href="http://melgrubb.spaces.live.com/blog/"&gt;Mel Grubb&lt;/a&gt; talks about &lt;a href="http://melgrubb.spaces.live.com/blog/cns!A44BB98A805C8996!298.entry"&gt;parameterized tests&lt;/a&gt; and why use it at all. He also raises the question whether having the ability to run parameterized tests can rule out usage of a framework. Personally, I think there are better ways to choose unit tests framework, but that’s not what this post about.&lt;/p&gt;  &lt;p&gt;First, what are parameterized tests? &lt;/p&gt;  &lt;p&gt;Regular tests, in NUnit, MSTest or other frameworks, are void methods that take no arguments. Parameterized tests are tests that certain frameworks (like &lt;a href="http://www.gallio.org/"&gt;Gallio&lt;/a&gt;) can run several times, each with a different set of input parameters and expected result.&amp;#160; MbUnit uses the attribute RowTest, because each row contained a set of input parameters and a result, like a list. (And if you’re familiar with Fit/Fitnesse, the table metaphor may remind you of this as well).&lt;/p&gt;  &lt;p&gt;With different parameters, I can run the same code, and not need to copy/paste it. This looks like a great productivity boost. But like Mel said, you’re losing some readability of the tests. If you came back to the code 2 weeks, months or years and look at the code, you wouldn’t know what differentiates the 2nd from the 3rd row. They all look the same.&lt;/p&gt;  &lt;p&gt;So what Mel suggests is doing some refactoring, and increasing the readability by naming the tests accordingly, which I agree whole heartedly with.&lt;/p&gt;  &lt;p&gt;But I’ll go a step further. Which test would you like to debug, if it broke? The one with the descriptive name that tests a single scenario, or the one with the laundry list of arguments? I’d go with the first.&lt;/p&gt;  &lt;p&gt;One more thing: Now you can use the parameter in the test itself. Instead of arg1, you can now send to the tested method arg1*2. This starts to smell, you’re actually putting logic into the test. So, especially for beginners, or other people who would like to cut corners, I wouldn’t recommend using it.&lt;/p&gt;  &lt;p&gt;Let’s say I have a component that does authentication. You give it a name and password, and it gives you back a yes/no result. For all the specific criteria I’d write specific and &lt;u&gt;named &lt;/u&gt;tests: name is null, password is longer than 6 characters, password contains alphanumeric characters. Basically, if I can characterize it in words, I’ll write a unit test for that. &lt;/p&gt;  &lt;p&gt;Now if I have a batch of hundreds of collected names and passwords, that I just want to make sure that pass authentication, I might want to write a parameterized tests, or just loop through all the list and assert the result. That’s in &lt;strong&gt;addition&lt;/strong&gt; to the other tests I’ve already written.&lt;/p&gt;  &lt;p&gt;By the way, if one of those breaks, I’d write a specific test for that as well. I’d recognize the case of failure, and characterize it. So the next time I come across, a case like that, I can debug more quickly.&lt;/p&gt;  &lt;p&gt;Parameterized tests are nice. But do yourself a favor, for unit tests stick to the basics.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-6829335539781857173?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=hlrBPQVnLL4:ixATRwhY5wY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/hlrBPQVnLL4" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/6829335539781857173?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/6829335539781857173?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/hlrBPQVnLL4/parameterized-tests-and-rowtests.html" title="Parameterized Tests and RowTests" /><author><name>Gil Zilberfeld</name><uri>http://www.blogger.com/profile/18210181375618736629</uri><email>Gil.Zilberfeld@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="14153621667886631279" /></author><feedburner:origLink>http://blog.typemock.com/2009/07/parameterized-tests-and-rowtests.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QERHo4fSp7ImA9WxJVGEs.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-3039543408870844938</id><published>2009-07-06T00:28:00.001-07:00</published><updated>2009-07-06T00:28:25.435-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-06T00:28:25.435-07:00</app:edited><title>Unit Tests Myth Busting</title><content type="html">&lt;p&gt;&lt;a href="http://blog.einbu.no/"&gt;Arjan Einbu&lt;/a&gt; spills the beans on his experience with unit testing, &lt;a href="http://blog.einbu.no/2009/07/myth-busting-unit-testing/"&gt;busting one myth after the other&lt;/a&gt;. Like the “&lt;a href="http://blog.typemock.com/2009/06/i-dont-have-time-to-write-test-excuse.html"&gt;I don’t have time&lt;/a&gt;” excuse, if you’ve used any of these excuses, better find a new one. Scratch that, write a test.&lt;/p&gt;  &lt;p&gt;And about the one where management doesn’t buy into it? Go guerrilla and do it behind their backs. You might not get the pat on the back, but they’ll be busy blaming all the other developers for breaking the app, while you’ll be gloating about your perfect code.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-3039543408870844938?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=iIv7C2FXWbM:Lt9N90qDSBo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/iIv7C2FXWbM" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/3039543408870844938?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/3039543408870844938?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/iIv7C2FXWbM/unit-tests-myth-busting.html" title="Unit Tests Myth Busting" /><author><name>Gil Zilberfeld</name><uri>http://www.blogger.com/profile/18210181375618736629</uri><email>Gil.Zilberfeld@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="14153621667886631279" /></author><feedburner:origLink>http://blog.typemock.com/2009/07/unit-tests-myth-busting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAFRncyeip7ImA9WxJVF0Q.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-7215672832454537312</id><published>2009-07-05T04:35:00.001-07:00</published><updated>2009-07-05T04:35:17.992-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-05T04:35:17.992-07:00</app:edited><title>Eric Shupps on SharePoint, TDD and Unit Testing</title><content type="html">&lt;p&gt;A while ago, &lt;a href="http://www.binarywave.com/blogs/eshupps/default.aspx"&gt;Eric Shupps&lt;/a&gt; wrote about &lt;a href="http://www.binarywave.com/blogs/eshupps/Lists/Posts/Post.aspx?ID=179"&gt;TDD and SharePoint&lt;/a&gt; development. His &lt;a href="http://www.binarywave.com/blogs/eshupps/Lists/Posts/Post.aspx?ID=209"&gt;follow up post&lt;/a&gt; is really a good read, because rather concentrating on the technique (TDD or Test After), he’s concentrating on why we do unit tests in the first place: Making better code, for less bugs and shortening development cycles.&lt;/p&gt;  &lt;p&gt;And I like this quote:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;quot;&lt;strong&gt;In fact, I would argue that, due to the complexity of the SharePoint object model, the various undocumented and often erratic behaviors, and the level of skill required to effectively troubleshoot and optimize such code, Unit testing has more value in a SharePoint context than in any other.”&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Yes, you can replace SharePoint with your favorite technology and it’s still works…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-7215672832454537312?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=oTDJMBEtDpk:3pO1eek3_pU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/oTDJMBEtDpk" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/7215672832454537312?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/7215672832454537312?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/oTDJMBEtDpk/eric-shupps-on-sharepoint-tdd-and-unit.html" title="Eric Shupps on SharePoint, TDD and Unit Testing" /><author><name>Gil Zilberfeld</name><uri>http://www.blogger.com/profile/18210181375618736629</uri><email>Gil.Zilberfeld@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="14153621667886631279" /></author><feedburner:origLink>http://blog.typemock.com/2009/07/eric-shupps-on-sharepoint-tdd-and-unit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcBQHYycSp7ImA9WxJVF0U.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-6182166407122011290</id><published>2009-07-05T01:54:00.001-07:00</published><updated>2009-07-05T01:54:11.899-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-05T01:54:11.899-07:00</app:edited><title>Solving Problems with Isolator – Windows Service Interception</title><content type="html">&lt;p&gt;At the same day I &lt;a href="http://blog.typemock.com/2009/06/problem-solving-with-isolator.html"&gt;posted&lt;/a&gt; about different usages of Isolator in the real world, that are not just regular faking, &lt;a href="http://www.paraesthesia.com/"&gt;Travis Illig&lt;/a&gt; contacted me about an experiment he’s doing, which obviously &lt;a href="http://www.paraesthesia.com/archive/2009/07/01/1545.aspx"&gt;succeeded&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Travis, a Typemock MVP, used Isolator to change the behavior of a single method inside 3rd party code, running in a Windows service that was giving him pain. The pain was removed by allowing Isolator to run inside the production code, intercept the offending call, and redirect it to another implementation. Now, how cool is that?&lt;/p&gt;  &lt;p&gt;I’ve discussed with Travis other ways to intercept and modify calls. The first one Travis suggested is using a Swap.AllInstances of the offending type and then using a WhenCalled-DoInstead combo, to intercept the call and execute another piece of code instead.&lt;/p&gt;  &lt;p&gt;The second option is redirecting the calls to another object, as Travis solution does. In this case, you redirect calls from one object to another. Only methods that have the same signature get redirected. All others are executed on the original object.&lt;/p&gt;  &lt;p&gt;The final option is using &lt;a href="http://cthru.codeplex.com/"&gt;CThru&lt;/a&gt;. With &lt;a href="http://cthru.codeplex.com/"&gt;CThru&lt;/a&gt; you specify all the method calls you want to intercept, and then implement an event handler that is invoked when the method is intercepted.&lt;/p&gt;  &lt;p&gt;For all these to work, you need the Isolator engine to run, and that’s why the environment variables are set. Basically, you can run TMockRunner and do the same thing, although it does get a little heavy when handling Windows services.&lt;/p&gt;  &lt;p&gt;Well done Travis! Another reminder that innovation comes from everywhere – when people use a tool differently than what it was intended for, great things can happen.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-6182166407122011290?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=2Jc6QWyCYnA:Ru8kUMzn1BI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/2Jc6QWyCYnA" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/6182166407122011290?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/6182166407122011290?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/2Jc6QWyCYnA/solving-problems-with-isolator-windows.html" title="Solving Problems with Isolator – Windows Service Interception" /><author><name>Gil Zilberfeld</name><uri>http://www.blogger.com/profile/18210181375618736629</uri><email>Gil.Zilberfeld@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="14153621667886631279" /></author><feedburner:origLink>http://blog.typemock.com/2009/07/solving-problems-with-isolator-windows.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8HRns7eSp7ImA9WxJVFU8.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-1863443508676467292</id><published>2009-07-01T07:45:00.000-07:00</published><updated>2009-07-02T01:20:37.501-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-02T01:20:37.501-07:00</app:edited><title>Videos from Typemocks Unit Testing open discussion Event at #NDC09</title><content type="html">&lt;span style="color:#000000;"&gt;Below you can see videos from &lt;strong&gt;Typemock’s Unit Testing and Beer&lt;/strong&gt; open discussion event at NDC09. The first 2 videos are of Roy Osherove and Carl Franklin from .NET Rocks singing (a huge thanks to both of them!), the other 2 are of the open discussion.&lt;br /&gt;We want to thank again all the developers who participated in our event, and we hope to see you again in future events.&lt;br /&gt;&lt;span style="color:#000066;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000066;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000066;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000066;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000066;"&gt;&lt;a href="http://weblogs.asp.net/rosherove/"&gt;&lt;span style="color:#3333ff;"&gt;Roy Osherove&lt;/span&gt;&lt;/a&gt; Intro words + &lt;a href="http://www.franklins.net/carl.aspx"&gt;&lt;span style="color:#3333ff;"&gt;Carl Franklin&lt;/span&gt; &lt;/a&gt;from &lt;/span&gt;&lt;/strong&gt;&lt;a href="http://www.dotnetrocks.com/"&gt;&lt;strong&gt;&lt;span style="color:#3333ff;"&gt;&lt;span style="color:#3333ff;"&gt;.NET Rocks&lt;/span&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;span style="color:#000066;"&gt;singing:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;object id="viddler_9c6a74d2" height="370" width="437" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"&gt;&lt;param name="_cx" value="11562"&gt;&lt;param name="_cy" value="9790"&gt;&lt;param name="FlashVars" value=""&gt;&lt;param name="Movie" value="http://www.viddler.com/simple/9c6a74d2/"&gt;&lt;param name="Src" value="http://www.viddler.com/simple/9c6a74d2/"&gt;&lt;param name="WMode" value="Window"&gt;&lt;param name="Play" value="-1"&gt;&lt;param name="Loop" value="-1"&gt;&lt;param name="Quality" value="High"&gt;&lt;param name="SAlign" value="LT"&gt;&lt;param name="Menu" value="-1"&gt;&lt;param name="Base" value=""&gt;&lt;param name="AllowScriptAccess" value="always"&gt;&lt;param name="Scale" value="ShowAll"&gt;&lt;param name="DeviceFont" value="0"&gt;&lt;param name="EmbedMovie" value="0"&gt;&lt;param name="BGColor" value=""&gt;&lt;param name="SWRemote" value=""&gt;&lt;param name="MovieData" value=""&gt;&lt;param name="SeamlessTabbing" value="1"&gt;&lt;param name="Profile" value="0"&gt;&lt;param name="ProfileAddress" value=""&gt;&lt;param name="ProfilePort" value="0"&gt;&lt;param name="AllowNetworking" value="all"&gt;&lt;param name="AllowFullScreen" value="true"&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://www.viddler.com/simple/9c6a74d2/" width="247" height="205" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" name="viddler_9c6a74d2"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color:#000066;"&gt;Roy Osherove Singing:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object id="viddler_Moran_4" height="370" width="437" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"&gt;&lt;param name="_cx" value="11562"&gt;&lt;param name="_cy" value="9790"&gt;&lt;param name="FlashVars" value=""&gt;&lt;param name="Movie" value="http://www.viddler.com/player/a2900d63/"&gt;&lt;param name="Src" value="http://www.viddler.com/player/a2900d63/"&gt;&lt;param name="WMode" value="Window"&gt;&lt;param name="Play" value="-1"&gt;&lt;param name="Loop" value="-1"&gt;&lt;param name="Quality" value="High"&gt;&lt;param name="SAlign" value=""&gt;&lt;param name="Menu" value="-1"&gt;&lt;param name="Base" value=""&gt;&lt;param name="AllowScriptAccess" value="always"&gt;&lt;param name="Scale" value="ShowAll"&gt;&lt;param name="DeviceFont" value="0"&gt;&lt;param name="EmbedMovie" value="0"&gt;&lt;param name="BGColor" value=""&gt;&lt;param name="SWRemote" value=""&gt;&lt;param name="MovieData" value=""&gt;&lt;param name="SeamlessTabbing" value="1"&gt;&lt;param name="Profile" value="0"&gt;&lt;param name="ProfileAddress" value=""&gt;&lt;param name="ProfilePort" value="0"&gt;&lt;param name="AllowNetworking" value="all"&gt;&lt;param name="AllowFullScreen" value="true"&gt;&lt;br /&gt;&lt;embed src="http://www.viddler.com/player/a2900d63/" wmode="transparent" width="437" height="370" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" name="viddler_Moran_4"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000066;"&gt;Open Spaces discussion - 1:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object id="viddler_Moran_2" height="370" width="437" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"&gt;&lt;param name="_cx" value="11562"&gt;&lt;param name="_cy" value="9790"&gt;&lt;param name="FlashVars" value=""&gt;&lt;param name="Movie" value="http://www.viddler.com/player/a3a53f82/"&gt;&lt;param name="Src" value="http://www.viddler.com/player/a3a53f82/"&gt;&lt;param name="WMode" value="Window"&gt;&lt;param name="Play" value="-1"&gt;&lt;param name="Loop" value="-1"&gt;&lt;param name="Quality" value="High"&gt;&lt;param name="SAlign" value=""&gt;&lt;param name="Menu" value="-1"&gt;&lt;param name="Base" value=""&gt;&lt;param name="AllowScriptAccess" value="always"&gt;&lt;param name="Scale" value="ShowAll"&gt;&lt;param name="DeviceFont" value="0"&gt;&lt;param name="EmbedMovie" value="0"&gt;&lt;param name="BGColor" value=""&gt;&lt;param name="SWRemote" value=""&gt;&lt;param name="MovieData" value=""&gt;&lt;param name="SeamlessTabbing" value="1"&gt;&lt;param name="Profile" value="0"&gt;&lt;param name="ProfileAddress" value=""&gt;&lt;param name="ProfilePort" value="0"&gt;&lt;param name="AllowNetworking" value="all"&gt;&lt;param name="AllowFullScreen" value="true"&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://www.viddler.com/player/a3a53f82/" wmode="transparent" width="437" height="370" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" name="viddler_Moran_2"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color:#000066;"&gt;Open Spaces discussion - 2:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;object id="viddler_Moran_3" height="370" width="437" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"&gt;&lt;param name="_cx" value="11562"&gt;&lt;param name="_cy" value="9790"&gt;&lt;param name="FlashVars" value=""&gt;&lt;param name="Movie" value="http://www.viddler.com/player/b032283c/"&gt;&lt;param name="Src" value="http://www.viddler.com/player/b032283c/"&gt;&lt;param name="WMode" value="Window"&gt;&lt;param name="Play" value="-1"&gt;&lt;param name="Loop" value="-1"&gt;&lt;param name="Quality" value="High"&gt;&lt;param name="SAlign" value=""&gt;&lt;param name="Menu" value="-1"&gt;&lt;param name="Base" value=""&gt;&lt;param name="AllowScriptAccess" value="always"&gt;&lt;param name="Scale" value="ShowAll"&gt;&lt;param name="DeviceFont" value="0"&gt;&lt;param name="EmbedMovie" value="0"&gt;&lt;param name="BGColor" value=""&gt;&lt;param name="SWRemote" value=""&gt;&lt;param name="MovieData" value=""&gt;&lt;param name="SeamlessTabbing" value="1"&gt;&lt;param name="Profile" value="0"&gt;&lt;param name="ProfileAddress" value=""&gt;&lt;param name="ProfilePort" value="0"&gt;&lt;param name="AllowNetworking" value="all"&gt;&lt;param name="AllowFullScreen" value="true"&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://www.viddler.com/player/b032283c/" wmode="transparent" width="437" height="370" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" name="viddler_Moran_3"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-1863443508676467292?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=J3QkBJXd2Os:DIVoh6_zO_4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/J3QkBJXd2Os" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/1863443508676467292?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/1863443508676467292?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/J3QkBJXd2Os/videos-from-typemocks-unit-testing-open.html" title="Videos from Typemocks Unit Testing open discussion Event at #NDC09" /><author><name>Moran BD</name><uri>http://www.blogger.com/profile/04337878793710858654</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10140560078290629964" /></author><feedburner:origLink>http://blog.typemock.com/2009/07/videos-from-typemocks-unit-testing-open.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMFQ3YzeCp7ImA9WxJVE0g.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-688281035512519111</id><published>2009-06-30T02:12:00.000-07:00</published><updated>2009-06-30T02:16:52.880-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-30T02:16:52.880-07:00</app:edited><title>52% of developers say: Unit testing is the answer for the EU software liability bill</title><content type="html">According to a survey held by Typemock, more than half of the developers believe that unit testing can help companies avoid law suits if the new EU software liability bill will pass.&lt;br /&gt;&lt;br /&gt;Typemock, the &lt;a href="http://www.typemock.com/"&gt;Unit testing tools &lt;/a&gt;provider, held a survey asking .NET developers if they think that unit testing can help companies avoid law suits if the new EU software liability bill, proposed by Commissioners &lt;a href="http://ec.europa.eu/commission_barroso/reding/index_en.htm" target="_blank"&gt;Viviane Reding&lt;/a&gt; and Meglena Kuneva, will pass.  52% of them said that it can.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.typemock.com/" target="_blank"&gt;Typemock&lt;/a&gt; asked developers this Online, in their blog, and offline, in Typemock’s Unit Testing Open Microphone event at the 2009 Norwegian Developers Conference (&lt;a href="http://www.ndc2009.no/en/"&gt;NDC&lt;/a&gt;). In this event developers took turns in voicing their opinions on Unit testing and the EU software liability bill. While the majority of them said that they shouldn't be held liable for their code, they believe that if this bill passes, unit testing will help companies to be confident in their product and avoid future law suits.&lt;br /&gt;&lt;br /&gt;Unit testing was one of the central topics at the NDC conference, with keynote speaker &lt;a href="http://www.objectmentor.com/omTeam/martin_r.html" target="_blank"&gt;Robert C. Martin&lt;/a&gt; (Uncle Bob) declaring that unit testing and &lt;a href="http://www.typemock.com/Test_Driven_Development_TDD.php"&gt;TDD &lt;/a&gt;are a must for professional software developers, a whole day dedicated to unit testing sessions, and as mentioned, Typemock’s Unit testing event.&lt;br /&gt;&lt;br /&gt; “We believe that companies should always strive to release products with the highest quality, that produce real value for the customer, and that unit testing is the most effective way to start making that happen” Says &lt;a href="http://weblogs.asp.net/rosherove/"&gt;Roy Osherove&lt;/a&gt;, Senior Developer at Typemock, and the author of the book the &lt;a href="http://www.artofunittesting.com/"&gt;Art of Unit testing&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Unit testing is an upcoming software development method in which developers write tests for small parts of their code, and check them individually (in ‘isolation’), and not as part  of the whole application. This is done in the first development stage, while coding the application and not in the QA (quality assurance) stage like most tests.  Unit testing lowers the ‘Bug Fix Time’ and ‘Bug fix Cost’, and frees up the developers’ time, so that they can create new features instead of fixing bugs.&lt;br /&gt;&lt;br /&gt;Typemock develops solutions for .NET unit testing, giving developers the power to easily perform unit testing by making them easy to write and automate.  Typemock’s unit testing tools have enabled companies to release their products with higher quality and fewer bugs, while saving both time and money.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-688281035512519111?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=NNDD1eZLnis:uFcwsma2Yyw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/NNDD1eZLnis" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/688281035512519111?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/688281035512519111?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/NNDD1eZLnis/52-of-developers-say-unit-testing-is.html" title="52% of developers say: Unit testing is the answer for the EU software liability bill" /><author><name>Moran BD</name><uri>http://www.blogger.com/profile/04337878793710858654</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10140560078290629964" /></author><feedburner:origLink>http://blog.typemock.com/2009/06/52-of-developers-say-unit-testing-is.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIMQXc_eip7ImA9WxJVEko.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-5845299197629685542</id><published>2009-06-29T05:13:00.001-07:00</published><updated>2009-06-29T05:13:00.942-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-29T05:13:00.942-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="HowTo" /><category scheme="http://www.blogger.com/atom/ns#" term="beginners" /><title>Testing without SmtpClient</title><content type="html">&lt;p&gt;&lt;a href="http://haacked.com/archive/2006/05/30/ATestingMailServerForUnitTestingEmailFunctionality.aspx"&gt;This is pretty awesome&lt;/a&gt;. here’s another way of really unit testing smtpClient code, without having a server running:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_ZvYVTm3TxKM/Skivxth-16I/AAAAAAAAAFk/kU0XfSrk4jI/s1600-h/image%5B7%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_ZvYVTm3TxKM/Skivy5OoXVI/AAAAAAAAAFo/NxuqCdjnOXI/image_thumb%5B3%5D.png?imgmax=800" width="796" height="587" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I’m using Isolator to capture and redirect calls from the &lt;strong&gt;next instance&lt;/strong&gt; of SmtpClient, capturing the parameters to a method call on it, and then asserting on the passed in object. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-5845299197629685542?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=-Fd-dnkH17M:jlB-h-3P_oY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/-Fd-dnkH17M" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/5845299197629685542?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/5845299197629685542?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/-Fd-dnkH17M/testing-without-smtpclient.html" title="Testing without SmtpClient" /><author><name>Roy Osherove</name><uri>http://www.blogger.com/profile/10889682616497587473</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="08040549062274394207" /></author><feedburner:origLink>http://blog.typemock.com/2009/06/testing-without-smtpclient.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08BRHs7fSp7ImA9WxJVEk0.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-2144483855767138904</id><published>2009-06-28T09:17:00.001-07:00</published><updated>2009-06-28T09:17:35.505-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-28T09:17:35.505-07:00</app:edited><title>Working with Racer, Part II</title><content type="html">&lt;p&gt;This week I played with &lt;a href="http://www.typemock.com/learn_about_typemock_racer.php"&gt;Racer&lt;/a&gt; and &lt;a href="http://gallio.org/"&gt;Gallio&lt;/a&gt;, the current incarnation of mbUnit. Did you know that Gallio comes with Typemock Isolator extensions?&lt;/p&gt;  &lt;p&gt;Anyway, Gallio has some thread manipulation classes, like TaskContainer and ThreadTask, as well as others. I tried to find deadlocks around those classes. No dice. I’m not discouraged though. I’m just going to need a more thread-complicated project where a deadlock is waiting to be found.&lt;/p&gt;  &lt;p&gt;But until then, here are things I find during my exercises, useful ones, I think.&lt;/p&gt;  &lt;p&gt;First, when using MSTest, which I do, you need to turn off deployment in the solution’s test configuration file. There’s a small bug that causes a weird exception when you run with the default deployment on.&lt;/p&gt;  &lt;p&gt;Next, running with Isolator. Yes, Typemock tools do work together. When you have both installed, and you want to run Racer, you should disable Isolator and enable Racer. This is the default mode, since Racer runs the regular code paths. &lt;/p&gt;  &lt;p&gt;However, there come times where you need dependency isolation. In my tests, I found that the code I want to Racer to test calls system files dependencies. In another case, the function got an abstract class as an argument. In both, those didn’t have any impact on what I was looking for, namely thread manipulation methods. So I faked them with Isolator.&lt;/p&gt;  &lt;p&gt;In order to make that work, you need to disable from the Typemock menu and enable Isolator. Then you need to link Isolator with Racer, using Isolator’s Configuration program. And that’s it, you can now use Isolator’s APIs to your heart’s content. This can make the process of running much shorter, because as we know dependencies can be heavy on the processing side, while not important for the purpose of the test.&lt;/p&gt;  &lt;p&gt;So far I haven’t found a worthy opponent. And by worthy I mean a complex enough multi-threaded project that might actually cause deadlocks. What I’ve encountered until now are simple locks. What do you suggest I try next?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-2144483855767138904?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=SDpj6FDg3N0:vm38lgFk3iY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/SDpj6FDg3N0" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/2144483855767138904?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/2144483855767138904?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/SDpj6FDg3N0/working-with-racer-part-ii.html" title="Working with Racer, Part II" /><author><name>Gil Zilberfeld</name><uri>http://www.blogger.com/profile/18210181375618736629</uri><email>Gil.Zilberfeld@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="14153621667886631279" /></author><feedburner:origLink>http://blog.typemock.com/2009/06/working-with-racer-part-ii.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcBQXk-eip7ImA9WxJVEU0.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-7780841845839292289</id><published>2009-06-27T06:07:00.001-07:00</published><updated>2009-06-27T06:07:30.752-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-27T06:07:30.752-07:00</app:edited><title>Avoiding Fragile Tests</title><content type="html">&lt;p&gt;This post came from reading a &lt;a href="http://www.typemock.com/community/viewtopic.php?t=1358"&gt;question&lt;/a&gt; on our forum, as well as reading one on TDD &lt;a href="http://refractalize.blogspot.com/2009/06/tdd-complicated-bits.html"&gt;experience&lt;/a&gt;. It’s about fragile tests, and the cost of maintenance.&lt;/p&gt;  &lt;p&gt;We’re talking about refactoring. And not just for making the code prettier and maintainable. We refactor and then our tests break. Well, sometimes they do, depending on how we wrote them. But if we change functionality, yes they will have to change.&lt;/p&gt;  &lt;p&gt;It becomes worse when our tests know too much about the inner logic of our components. If component A uses B in some way, and you change that, it maybe that integration tests for A are still passing, but the ones where you fake B break. &lt;/p&gt;  &lt;p&gt;What should we do? Are we doomed? Is this our fate? Is there no way out?&lt;/p&gt;  &lt;p&gt;Alas, there is no simple answer. First, remember that the cost of maintaining your tests is largely outweighed by having these tests in place at all. Having no tests at all costs a lot more than having to maintain a few tests. So if someone tries this on you, show them the door. &lt;/p&gt;  &lt;p&gt;The second thing is to come to terms with the fact that test code is just that - code, and therefore is subject to the lifetime changes such as production code is. If you are using Isolator or any mocking framework out there, you’re bound to hit this sometime.&lt;/p&gt;  &lt;p&gt;But you can minimize the risk of creating fragile tests. Here are a few suggestions:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Verify less. The Verify APIs (or &lt;a href="http://martinfowler.com/articles/mocksArentStubs.html"&gt;Mocks&lt;/a&gt; in general) tie your test code to internal functionality. These have much more impact on breaking tests on changes than WhenCalled APIs (or &lt;a href="http://martinfowler.com/articles/mocksArentStubs.html"&gt;Stubs&lt;/a&gt;). Use them only when you need to.&lt;/li&gt;    &lt;li&gt;Write focused tests. The more focused you test, meaning testing a small portion of the code, you’ll be less affected when you change other code.&lt;/li&gt;    &lt;li&gt;Minimize usage of&amp;#160; NonPublic. This makes a lot of sense, although obviously it’s there because you need it. Still, try.&amp;#160; &lt;/li&gt;    &lt;li&gt;Use less WhenCalled statements. Less statements means less knowledge of tests of the tested code. Here’s Isolator biggest advantage when you use recursive fakes. Since you’re changing the behavior of an entire tree of objects (without specifying which objects) in a single line, it minimizes the risk of a broken tests.&lt;/li&gt;    &lt;li&gt;Use proper tools, especially refactoring tools. &lt;a href="http://www.jetbrains.com/resharper/"&gt;Resharper&lt;/a&gt;, &lt;a href="http://www.devexpress.com/Products/Visual_Studio_Add-in/Coding_Assistance/"&gt;CodeRush&lt;/a&gt; and others make changes much safe then by doing them manually. Like I always say: use the proper tools for the right job.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;What’s you learned-the-harsh-way lessons for avoiding fragile tests?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-7780841845839292289?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=Yam7bJVnoKE:Lhgd-lY35yY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/Yam7bJVnoKE" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/7780841845839292289?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/7780841845839292289?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/Yam7bJVnoKE/avoiding-fragile-tests.html" title="Avoiding Fragile Tests" /><author><name>Gil Zilberfeld</name><uri>http://www.blogger.com/profile/18210181375618736629</uri><email>Gil.Zilberfeld@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="14153621667886631279" /></author><feedburner:origLink>http://blog.typemock.com/2009/06/avoiding-fragile-tests.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cMRns-fCp7ImA9WxJVEU0.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-9131698760800495168</id><published>2009-06-27T05:18:00.001-07:00</published><updated>2009-06-27T05:18:07.554-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-27T05:18:07.554-07:00</app:edited><title>The “I don’t have time to write a test” Excuse</title><content type="html">&lt;p&gt;I like this &lt;a href="http://www.nablasoft.com/alkampfer/index.php/2009/06/26/i-do-not-have-time-to-write-tests-excuse/"&gt;one&lt;/a&gt;. I usually hear it in a much larger organizational context, but hey one developer is a micro-cosmos of the entire org, right?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.nablasoft.com/alkampfer/"&gt;Alk&lt;/a&gt; talks about the cost saving of writing a test in terms of just running and debugging an app for a bug. We always talk about how writing tests impacts development now, but saves so much during the entire lifecycle of the application. But, writing a unit test to fix a bug is the one case where the developer sees in his own eyes how much time gets wasted when he’s debugging. It’s time saved for him, not for “everyone”.&lt;/p&gt;  &lt;p&gt;When developers see they don’t need the entire app just to tests a single method, it’s one of those “Aha” moments we all love. If you want to convince a developer that unit testing can help him, not only the entire project, show him how a writing a simple test can save him a lot of quality time with the debugger. And then say: “Oh this little tool? It’s called Typemock &lt;a href="http://www.typemock.com"&gt;Isolator&lt;/a&gt;. Saves me hours, and it can help you do that too”.&amp;#160; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-9131698760800495168?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=q1009teN7RU:rOgh1VaJkrI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/q1009teN7RU" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/9131698760800495168?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/9131698760800495168?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/q1009teN7RU/i-dont-have-time-to-write-test-excuse.html" title="The “I don’t have time to write a test” Excuse" /><author><name>Gil Zilberfeld</name><uri>http://www.blogger.com/profile/18210181375618736629</uri><email>Gil.Zilberfeld@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="14153621667886631279" /></author><feedburner:origLink>http://blog.typemock.com/2009/06/i-dont-have-time-to-write-test-excuse.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQMSHkzeCp7ImA9WxJVEU0.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-3896497286210547992</id><published>2009-06-27T04:49:00.001-07:00</published><updated>2009-06-27T04:49:49.780-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-27T04:49:49.780-07:00</app:edited><title>Unit Testing 101 Presentation</title><content type="html">&lt;p&gt;This is a nice &lt;a href="http://webservices20.blogspot.com/2009/06/unit-tests-presentation.html"&gt;one&lt;/a&gt; by &lt;a href="http://webservices20.blogspot.com/"&gt;Yaron Naveh&lt;/a&gt;. Sure, it uses Moq and not Isolator, but what the hell. &lt;/p&gt;  &lt;p&gt;The funny thing is that currently I’m showing demos of faking DateTime.Now for testability, and suddenly wrapping it up just for testability (like in this presentation) seems weird.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-3896497286210547992?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=17jev6oaK40:4n4LhKgl_uQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/17jev6oaK40" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/3896497286210547992?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/3896497286210547992?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/17jev6oaK40/unit-testing-101-presentation.html" title="Unit Testing 101 Presentation" /><author><name>Gil Zilberfeld</name><uri>http://www.blogger.com/profile/18210181375618736629</uri><email>Gil.Zilberfeld@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="14153621667886631279" /></author><feedburner:origLink>http://blog.typemock.com/2009/06/unit-testing-101-presentation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMFQH4_cSp7ImA9WxJWGUk.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-2465234361789674676</id><published>2009-06-25T08:30:00.000-07:00</published><updated>2009-06-25T08:40:11.049-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-25T08:40:11.049-07:00</app:edited><title>New Tutorial-Unit Testing ASP.NET MVC applications with Typemock's AAA Syntax</title><content type="html">A new &lt;a href="http://www.typemock.com/Articles.php"&gt;unit testing tutorial&lt;/a&gt; was uploaded to the &lt;a href="http://www.typemock.com/Articles.php"&gt;article section&lt;/a&gt; on our site.&lt;br /&gt;This is a comprehensive tutorial on Unit Testing ASP.NET MVC applications with Typemock Isolator.&lt;br /&gt;A big thanks goes to &lt;a href="http://itscommonsensestupid.blogspot.com/" target="_blank"&gt;Soon Hui Ngu &lt;/a&gt;, for writing this.&lt;br /&gt;Check out Soon Hui’s blog for more &lt;a href="http://itscommonsensestupid.blogspot.com/"&gt;.NET development&lt;/a&gt; info.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-2465234361789674676?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=zedaatYSfb0:Qz6IAbWQGj0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/zedaatYSfb0" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/2465234361789674676?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/2465234361789674676?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/zedaatYSfb0/new-tutorial-unit-testing-aspnet-mvc.html" title="New Tutorial-Unit Testing ASP.NET MVC applications with Typemock's AAA Syntax" /><author><name>Moran BD</name><uri>http://www.blogger.com/profile/04337878793710858654</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10140560078290629964" /></author><feedburner:origLink>http://blog.typemock.com/2009/06/new-tutorial-unit-testing-aspnet-mvc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQNSHc5cSp7ImA9WxJWGUk.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-2034474310821049954</id><published>2009-06-25T07:10:00.000-07:00</published><updated>2009-06-25T08:06:39.929-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-25T08:06:39.929-07:00</app:edited><title>Pictures from Typemocks #NDC09 - Unit testing and Beer - evening</title><content type="html">&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;We would like to thank everyone who participated in Typemock’s – &lt;strong&gt;Unit testing and Beer&lt;/strong&gt; – event on NDC. A big thanks also goes out to &lt;a href="http://weblogs.asp.net/rosherove/"&gt;Roy Osherove&lt;/a&gt;, &lt;a href="http://www.franklins.net/carl.aspx"&gt;Carl Franklin &lt;/a&gt;(host of &lt;a id="47387" href="http://www.dotnetrocks.com/" target="_BLANK"&gt;.NET Rocks!&lt;/a&gt;) and the good people of NDC especially Rune and Kjersti.&lt;br /&gt;&lt;br /&gt;We got great feedback from you guys, both for the Unit testing and software liability discussions and for Roy Osherove’s and Carl Franklin’s song. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;We have several videos from this event (including Roy’s and Carl’s song), they will be uploaded next week as we still need to edit them.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the meanwhile have a look at the pictures below.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="color:#ffffff;"&gt;-&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/_jPuvveIgGkI/SkONxcfXPpI/AAAAAAAAABM/WNu-1efvt18/s1600-h/IMG_2747.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5351276662847127186" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 240px" alt="" src="http://2.bp.blogspot.com/_jPuvveIgGkI/SkONxcfXPpI/AAAAAAAAABM/WNu-1efvt18/s320/IMG_2747.JPG" border="0" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_jPuvveIgGkI/SkONxsBRljI/AAAAAAAAABU/Vg5D0dWQXC4/s1600-h/IMG_2748.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5351276667015894578" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 240px" alt="" src="http://1.bp.blogspot.com/_jPuvveIgGkI/SkONxsBRljI/AAAAAAAAABU/Vg5D0dWQXC4/s320/IMG_2748.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_jPuvveIgGkI/SkONxzaM4bI/AAAAAAAAABc/Gp6De_m5Ha8/s1600-h/IMG_2749.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5351276668999492018" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 240px" alt="" src="http://1.bp.blogspot.com/_jPuvveIgGkI/SkONxzaM4bI/AAAAAAAAABc/Gp6De_m5Ha8/s320/IMG_2749.JPG" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_jPuvveIgGkI/SkONxbaZB8I/AAAAAAAAABE/RubDEHLHUzM/s1600-h/IMG_2746.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5351276662557837250" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 240px" alt="" src="http://4.bp.blogspot.com/_jPuvveIgGkI/SkONxbaZB8I/AAAAAAAAABE/RubDEHLHUzM/s320/IMG_2746.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_jPuvveIgGkI/SkONx2eVuiI/AAAAAAAAABk/coeQzVT0FfA/s1600-h/IMG_2750.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5351276669822155298" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 240px" alt="" src="http://2.bp.blogspot.com/_jPuvveIgGkI/SkONx2eVuiI/AAAAAAAAABk/coeQzVT0FfA/s320/IMG_2750.JPG" border="0" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_jPuvveIgGkI/SkOOUUUvkYI/AAAAAAAAABs/R-QoW-vGATA/s1600-h/IMG_2751.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5351277261950521730" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 240px" alt="" src="http://2.bp.blogspot.com/_jPuvveIgGkI/SkOOUUUvkYI/AAAAAAAAABs/R-QoW-vGATA/s320/IMG_2751.JPG" border="0" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_jPuvveIgGkI/SkOOUv859oI/AAAAAAAAAB0/D5Gr7mr-u94/s1600-h/IMG_2752.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5351277269366732418" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 240px" alt="" src="http://1.bp.blogspot.com/_jPuvveIgGkI/SkOOUv859oI/AAAAAAAAAB0/D5Gr7mr-u94/s320/IMG_2752.JPG" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-2034474310821049954?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=7nqe4Xt1hoA:OxlmUaeoW00:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/7nqe4Xt1hoA" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/2034474310821049954?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/2034474310821049954?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/7nqe4Xt1hoA/pictures-from-typemocks-ndc09-unit.html" title="Pictures from Typemocks #NDC09 - Unit testing and Beer - evening" /><author><name>Moran BD</name><uri>http://www.blogger.com/profile/04337878793710858654</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10140560078290629964" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_jPuvveIgGkI/SkONxcfXPpI/AAAAAAAAABM/WNu-1efvt18/s72-c/IMG_2747.JPG" height="72" width="72" /><feedburner:origLink>http://blog.typemock.com/2009/06/pictures-from-typemocks-ndc09-unit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYDRH0-eCp7ImA9WxJWGUw.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-6190480025800995203</id><published>2009-06-24T23:59:00.001-07:00</published><updated>2009-06-24T23:59:35.350-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-24T23:59:35.350-07:00</app:edited><title>Problem Solving with Isolator</title><content type="html">&lt;p&gt;I’ve &lt;a href="http://blog.typemock.com/2009/06/richard-fennell-writes-cthru-logging.html"&gt;written&lt;/a&gt; before how &lt;a href="http://blogs.blackmarble.co.uk/blogs/rfennell/"&gt;Richard Fennell&lt;/a&gt; is using &lt;a href="http://cthru.codeplex.com/"&gt;CThru&lt;/a&gt; to fake a SharePoint workflow. But he’s not the only one using Isolator to solve problems.&lt;/p&gt;  &lt;p&gt;Take for example, &lt;a href="http://apobekiaris.blogspot.com/"&gt;Apostolis Bekiaros&lt;/a&gt;. He’s writing an MVC app, and wants to &lt;a href="http://apobekiaris.blogspot.com/2009/06/tdd-xaf-typemock-and-expand.html"&gt;write more readable tests&lt;/a&gt;. Sure, he can do this the hard way, since MVC allows it. But his code with Isolator is much more elegant. By the way, he has a new open-source project called &lt;a href="http://apobekiaris.blogspot.com/2009/06/expand-rwf-real-application-framework.html"&gt;eXpand&lt;/a&gt;, which is tested with Isolator.&lt;/p&gt;  &lt;p&gt;On the other end of the globe, &lt;a href="http://blogs.msdn.com/francischeung/"&gt;Francis Cheung&lt;/a&gt;, uses Isolator in &lt;a href="http://blogs.msdn.com/francischeung/archive/2009/06/24/using-typemock-isolator-for-integration-tests.aspx"&gt;integration tests&lt;/a&gt;, by redirecting calls from the SharePoint’s server to object you construct locally. I tend to say it a lot lately: The same tools today are available both unit testing and integration testing (MSTest or NUnit, Isolator) and you can use both for different purposes in different ways. And what Francis did is really cool.&lt;/p&gt;  &lt;p&gt;Well done guys!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-6190480025800995203?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=_NADfn1KWuo:xZi-m68WMLw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/_NADfn1KWuo" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/6190480025800995203?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/6190480025800995203?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/_NADfn1KWuo/problem-solving-with-isolator.html" title="Problem Solving with Isolator" /><author><name>Gil Zilberfeld</name><uri>http://www.blogger.com/profile/18210181375618736629</uri><email>Gil.Zilberfeld@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="14153621667886631279" /></author><feedburner:origLink>http://blog.typemock.com/2009/06/problem-solving-with-isolator.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQGQHw6eip7ImA9WxJWF0g.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-114360062618591257</id><published>2009-06-23T04:20:00.001-07:00</published><updated>2009-06-23T04:25:21.212-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-23T04:25:21.212-07:00</app:edited><title>Back from the NDC</title><content type="html">&lt;p&gt; &lt;/p&gt;  &lt;p&gt;For those of you that weren’t there, Typemock had an open-space event alongside the NDC geek-beer evening – we were talking about the latest EU bill proposal that’ll make developers liable for their code (&lt;a href="http://news.zdnet.co.uk/software/0,1000000121,39649689,00.htm"&gt;yes, you can be sued for bugs in your code&lt;/a&gt;). We’ve got tons of material which still needs to be tidied up – so in the meantime, here’s a teaser:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_moWxgnIQg_U/SkC7J7rs90I/AAAAAAAAAAM/78WG6dD4E9g/s1600-h/IMG_2748.JPG"&gt;&lt;img style="cursor: pointer; width: 432px; height: 323px;" src="http://2.bp.blogspot.com/_moWxgnIQg_U/SkC7J7rs90I/AAAAAAAAAAM/78WG6dD4E9g/s320/IMG_2748.JPG" alt="" id="BLOGGER_PHOTO_ID_5350482136630359874" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_moWxgnIQg_U/SkC7grG9XcI/AAAAAAAAAAU/DdDvwobR3TA/s1600-h/IMG_2752.JPG"&gt;&lt;img style="cursor: pointer; width: 426px; height: 318px;" src="http://2.bp.blogspot.com/_moWxgnIQg_U/SkC7grG9XcI/AAAAAAAAAAU/DdDvwobR3TA/s320/IMG_2752.JPG" alt="" id="BLOGGER_PHOTO_ID_5350482527318269378" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-114360062618591257?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=DKNyMxQyxuw:83gznr2vxCg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/DKNyMxQyxuw" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/114360062618591257?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/114360062618591257?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/DKNyMxQyxuw/back-from-ndc.html" title="Back from the NDC" /><author><name>AviK</name><uri>http://www.blogger.com/profile/07015226676126085042</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="06404252272876310881" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_moWxgnIQg_U/SkC7J7rs90I/AAAAAAAAAAM/78WG6dD4E9g/s72-c/IMG_2748.JPG" height="72" width="72" /><feedburner:origLink>http://blog.typemock.com/2009/06/back-from-ndc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ECQX86fyp7ImA9WxJWF04.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-3648556961749992335</id><published>2009-06-22T22:41:00.001-07:00</published><updated>2009-06-22T22:41:00.117-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-22T22:41:00.117-07:00</app:edited><title>Richard Fennell Writes a CThru Logging Aspect</title><content type="html">&lt;p&gt;&lt;a href="http://cthru.codeplex.com/"&gt;CThru&lt;/a&gt; is something like an extension method. It allows you to add functionality to an already working system, especially when you don’t access to the code inside.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.blackmarble.co.uk/blogs/rfennell/default.aspx"&gt;Richard Fennell&lt;/a&gt; from Black Marble is looking for a way to test &lt;a href="http://blogs.blackmarble.co.uk/blogs/rfennell/archive/2009/04/07/testing-sharepoint-workflows-using-typemock-isolator-part-3.aspx"&gt;SharePoint workflows&lt;/a&gt;. When we talked about it, it looked to me like the effort Roy put into isolating Silverlight in &lt;a href="http://cthru.codeplex.com/"&gt;SilveUnit&lt;/a&gt;. In SilverUnit, the main issue was abstracting the asynchronous event messaging that Silverlight relies on, to substitute with a more robust and easy way to set properties. It allowed to create more readable tests, as well as run actual unit tests. In Richard’s case, it’s about identifying the dependency on other systems, that do things in the background.&lt;/p&gt;  &lt;p&gt;The work here is not done, since Richard did not complete his quest yet. However, on the way, Richard created a &lt;a href="http://blogs.blackmarble.co.uk/blogs/rfennell/archive/2009/06/22/logging-everything-that-is-going-on-when-an-assembly-loads-using-cthru.aspx"&gt;logging aspect,&lt;/a&gt; that using CThru, starts narrowing down the search. With logging, you can create a log of all the calls under the hood of your system.&lt;/p&gt;  &lt;p&gt;You can see the code &lt;a href="http://blogs.blackmarble.co.uk/blogs/rfennell/archive/2009/06/22/logging-everything-that-is-going-on-when-an-assembly-loads-using-cthru.aspx"&gt;here&lt;/a&gt;. &lt;a href="http://cthru.codeplex.com/"&gt;CThru&lt;/a&gt; is coming up as a platform for solving things we couldn’t do before. How can it help you?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-3648556961749992335?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=GVl897WoMnQ:ARd5Q4Psdgg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/GVl897WoMnQ" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/3648556961749992335?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/3648556961749992335?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/GVl897WoMnQ/richard-fennell-writes-cthru-logging.html" title="Richard Fennell Writes a CThru Logging Aspect" /><author><name>Gil Zilberfeld</name><uri>http://www.blogger.com/profile/18210181375618736629</uri><email>Gil.Zilberfeld@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="14153621667886631279" /></author><feedburner:origLink>http://blog.typemock.com/2009/06/richard-fennell-writes-cthru-logging.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEESXszcSp7ImA9WxJWFkQ.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-8773670617204612532</id><published>2009-06-22T12:06:00.001-07:00</published><updated>2009-06-22T12:06:48.589-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-22T12:06:48.589-07:00</app:edited><title>First review of Typemock Racer</title><content type="html">&lt;p&gt;And here it &lt;a href="http://www.drrandom.org/PermaLink,guid,24aaf20e-9858-42a8-abc0-75f6b7f128b4.aspx"&gt;is&lt;/a&gt;. Go check it out now.&lt;/p&gt;  &lt;p&gt;Thanks &lt;a href="http://www.drrandom.org/default.aspx"&gt;Dr. Random&lt;/a&gt; (Casey Kramer)!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-8773670617204612532?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=k0zLWj6ndU8:KYcIaw-9UmA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/k0zLWj6ndU8" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/8773670617204612532?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/8773670617204612532?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/k0zLWj6ndU8/first-review-of-typemock-racer.html" title="First review of Typemock Racer" /><author><name>Gil Zilberfeld</name><uri>http://www.blogger.com/profile/18210181375618736629</uri><email>Gil.Zilberfeld@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="14153621667886631279" /></author><feedburner:origLink>http://blog.typemock.com/2009/06/first-review-of-typemock-racer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMHRng-eCp7ImA9WxJWE04.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-8072204638441233991</id><published>2009-06-18T06:57:00.001-07:00</published><updated>2009-06-18T06:57:17.650-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-18T06:57:17.650-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="HowTo" /><category scheme="http://www.blogger.com/atom/ns#" term="AAA" /><title>How to fake method’s parameters</title><content type="html">&lt;p&gt;Although Typemock Isolator know how to fake out and ref parameters there are times that a certain parameter passed to shall return a specific value.&lt;/p&gt;  &lt;p&gt;Consider this scenario – a call to a stream object:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_xBtHhN4kUkQ/SjpHtJEcOHI/AAAAAAAACuE/w3wsZ657QPQ/s1600-h/image%5B12%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_xBtHhN4kUkQ/SjpHtjXTcNI/AAAAAAAACuI/zSyP4aeivA0/image_thumb%5B8%5D.png?imgmax=800" width="454" height="39" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the test we want to fake the return value but we also want to fill the byte array with some valid values as well.&lt;/p&gt;  &lt;p&gt;Setting the return value is easy just use &lt;em&gt;WhenCalled(…).WillReturn(1024)&lt;/em&gt; but how can we cause the method to return a valid byte array as well? Luckily for us we can use &lt;em&gt;DoInstead&lt;/em&gt; to change the method’s parameters as well its return value:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_xBtHhN4kUkQ/SjpHty2mFHI/AAAAAAAACuM/WRFE6h-XOhI/s1600-h/image%5B18%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_xBtHhN4kUkQ/SjpHupoI0dI/AAAAAAAACuQ/umDukzlHnTE/image_thumb%5B12%5D.png?imgmax=800" width="632" height="330" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Now we can test our code knowing that when our stream will be called it will return a byte array that was declared by the test.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-8072204638441233991?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=ks7ndp2j2Aw:tcFyDOmrxks:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/ks7ndp2j2Aw" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/8072204638441233991?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/8072204638441233991?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/ks7ndp2j2Aw/how-to-fake-methods-parameters.html" title="How to fake method’s parameters" /><author><name>Dror Helper</name><uri>http://www.blogger.com/profile/04664241287712801778</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="14941583444711874923" /></author><feedburner:origLink>http://blog.typemock.com/2009/06/how-to-fake-methods-parameters.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUGRXk6eSp7ImA9WxJWEk4.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-7740029773310991466</id><published>2009-06-17T03:59:00.000-07:00</published><updated>2009-06-17T04:13:44.711-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-17T04:13:44.711-07:00</app:edited><title>Typemock Unit Testing and Beer evening #NDC09 – list of guaranteed entrances</title><content type="html">We want to thank everybody who RT this.&lt;br /&gt;&lt;br /&gt;Below you can see the list of Twitter user names that got a guaranteed entrance (In alphabetical order ).&lt;br /&gt;&lt;br /&gt;If you RT our message, and you are not in this list please let us know by commenting on this blog or sending an email to moran (at) typemock (dot) com .&lt;br /&gt;&lt;br /&gt;See you all there !&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a title="Anders Hammervold" href="http://twitter.com/ah74"&gt; ah74 &lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/AlexanderViken" target="_blank"&gt; AlexanderViken&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/alfborge" target="_blank"&gt; alfborge&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/dvdstelt" target="_blank"&gt; dvdstelt&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/fossmo" target="_blank"&gt; fossmo&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/henningst" target="_blank"&gt; henningst&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/HenrikOfteland" target="_blank"&gt; HenrikOfteland&lt;/a&gt;&lt;br /&gt;&lt;a title="Jan-Jaap v.d. Geer" href="http://twitter.com/jjvdgeer"&gt; jjvdgeer&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/joelabrahamsson" target="_blank"&gt; joelabrahamsson&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/KalleHoppe" target="_blank"&gt; KalleHoppe&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/kjetilkl" target="_blank"&gt; kjetilkl&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/marknijhof" target="_blank"&gt; marknijhof&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/mashi" target="_blank"&gt; mashi&lt;/a&gt;&lt;br /&gt;&lt;a title="Niall Merrigan" href="http://twitter.com/nmerrigan"&gt; nmerrigan&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/oyvindfanebust" target="_blank"&gt; oyvindfanebust&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/pr0nin" target="_blank"&gt; pr0nin&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/ravndal" target="_blank"&gt; ravndal&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/rogue_code" target="_blank"&gt; rogue_code&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/thedersen" target="_blank"&gt; thedersen&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/VirtueMe" target="_blank"&gt; VirtueMe&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/codethestuff" target="_blank"&gt;codethestuff&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/henriksen" target="_blank"&gt;henriksen&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/hhariri" target="_blank"&gt;hhariri&lt;/a&gt;&lt;br /&gt;&lt;a title="Jose R. Guay Paz" href="http://twitter.com/jrguay"&gt;jrguay&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/neslekkim" target="_blank"&gt;neslekkim&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/srstrong" target="_blank"&gt;srstrong&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/thomasjo" target="_blank"&gt;thomasjo&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/thomasjo" target="_blank"&gt;thomasjo&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/tomasekeli" target="_blank"&gt;tomasekeli&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/VirtueMe" target="_blank"&gt;VirtueMe&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-7740029773310991466?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=Ng45hN3-weU:zcsIdvTISuM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/Ng45hN3-weU" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/7740029773310991466?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/7740029773310991466?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/Ng45hN3-weU/typemock-unit-testing-and-beer-evening.html" title="Typemock Unit Testing and Beer evening #NDC09 – list of guaranteed entrances" /><author><name>Moran BD</name><uri>http://www.blogger.com/profile/04337878793710858654</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10140560078290629964" /></author><feedburner:origLink>http://blog.typemock.com/2009/06/typemock-unit-testing-and-beer-evening.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIFSXc5eCp7ImA9WxJWEUs.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-2000164460778095387</id><published>2009-06-16T06:27:00.000-07:00</published><updated>2009-06-16T06:55:18.920-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-16T06:55:18.920-07:00</app:edited><title>Easy deadlock detection-  get a free license for Typemock's Racer launch</title><content type="html">We have released a new &lt;a href="http://www.typemock.com/learn_about_typemock_racer.php"&gt;deadlock detection&lt;/a&gt;, unit testing tool – Typemock Racer, and for the product’s launch, each blogger who will review the Racer will get a &lt;strong&gt;&lt;span style="color:#990000;"&gt;free Racer license&lt;/span&gt;&lt;/strong&gt;!&lt;br /&gt;&lt;br /&gt;As the software world move towards multi-threading platforms, more and more developers find themselves faced with the problem of testing their code. Due to the nature of multi-threaded code development, the causes for bugs aren't easy to detect even with thorough testing. Companies run the risk of falling behind the competition, as they either don't develop multi-threaded code, or deliver buggy software, leading to users abandoning their products.&lt;br /&gt;&lt;br /&gt;Typemock Racer, our latest in a long line of unit testing tools, scans the developer’s code for known multi-threading problems. Racer is designed to integrate smoothly into the developer's work flow, enabling the developer to write tests, and get a detailed report to show where the potential problems occur in the code.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;Special deal for the launch - get a free license:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Each blogger that will download Racer from our site, evaluate it during the 21-day trial, post a review about it on his blog and &lt;a href="mailto:racer@typemock.com"&gt;tell us about it&lt;/a&gt;, will get a free Racer license. All reviews are welcome, we listen to your comments that’s how we improve. The review must be at least 100 words long (but can be more), must include a Hyperlink to Typemock’s site, and must be posted before 21/07/09.&lt;br /&gt;&lt;br /&gt;Go to the &lt;a href="http://www.typemock.com/learn_about_typemock_racer.php"&gt;Racer&lt;/a&gt; page in our site to find out more on Racer’s &lt;a href="http://www.typemock.com/learn_about_typemock_racer.php"&gt;deadlock detection&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We will appreciate it if you let your blog readers know of this offer, either by posting the below text, or by telling them in your own words.&lt;br /&gt;&lt;br /&gt;** Typemock have launched a new &lt;a href="http://www.typemock.com/"&gt;Unit testing&lt;/a&gt; tool, &lt;strong&gt;Typemock Racer&lt;/strong&gt;, and for the launch they are offering a free license for bloggers who will review it.&lt;br /&gt;&lt;br /&gt;Get the full details on &lt;a href="http://blog.typemock.com/2009/06/easy-deadlock-detection-get-free.html"&gt;Typemock’s blog&lt;/a&gt;. **&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-2000164460778095387?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=0iLkMgoMVeo:giqHZQLm-8A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/0iLkMgoMVeo" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/2000164460778095387?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/2000164460778095387?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/0iLkMgoMVeo/easy-deadlock-detection-get-free.html" title="Easy deadlock detection-  get a free license for Typemock's Racer launch" /><author><name>Moran BD</name><uri>http://www.blogger.com/profile/04337878793710858654</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10140560078290629964" /></author><feedburner:origLink>http://blog.typemock.com/2009/06/easy-deadlock-detection-get-free.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUGRH0zcCp7ImA9WxJWEUg.&quot;"><id>tag:blogger.com,1999:blog-4863981320393275450.post-6428345167307984845</id><published>2009-06-16T04:03:00.001-07:00</published><updated>2009-06-16T04:03:45.388-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-16T04:03:45.388-07:00</app:edited><title>Working with Racer</title><content type="html">&lt;p&gt;I’m the first one who gets to break new stuff, and so, here are my impressions from Racer: It’s the greatest invention ever!&lt;/p&gt;  &lt;p&gt;What’s that? You say I’m a bit biased because I work at Typemock? You might have a point. So how’s my experience so far?&lt;/p&gt;  &lt;p&gt;I decided to try &lt;a href="http://www.typemock.com/learn_about_typemock_racer.php"&gt;Racer&lt;/a&gt; on open source projects. See if I can find problems there. I started with &lt;a href="http://www.nunit.org/index.php"&gt;NUnit&lt;/a&gt;, and then tried &lt;a href="https://www.hibernate.org/343.html"&gt;NHibernate&lt;/a&gt;. I’m trying to see if I can find deadlocks in there.&lt;/p&gt;  &lt;p&gt;Here’s how I do it:&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Step 1&lt;/u&gt;: Open the Racer docs. Yeah, I know, RTFM. The docs specify which APIs are supported, meaning, which APIs Racer intercepts to identify deadlocks.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Step 2&lt;/u&gt;: Search for usage of these APIs in the code. Obviously, this is redundant if you know your code. But I’ve taken the opportunity to check out OPC (other people’s code). I learned, for example, that NHibernate (which I have to admit, is my first time looking at it) implements its own lock.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Step 3&lt;/u&gt;: Now that I found API usage, I climbed up the code tree to see which objects and methods get called. At this point I also looked for shortcuts – are there any tests that already call these methods?&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Step 4&lt;/u&gt;: Finally, I wrote some tests for Racer to find deadlocks. Depending on the code I tried both cross-function calls, or running the same method on a couple of threads.&lt;/p&gt;  &lt;p&gt;And the results are in. So far I’ve found… nothing. Actually, in NUnit, I didn’t find problems. With NHibernate, I had trouble setting it up, so I decided to let it. I do want to give it another go, though.&lt;/p&gt;  &lt;p&gt;I’m going to continue my quest, to find deadlocks in open source projects, and then expose them to the public. (I know they are already exposed because they’re open source, humor me here). So I’m going to pick one project each week, and try it. I’ll post the results I get.&lt;/p&gt;  &lt;p&gt;Which project should I pick next? Would you volunteer to run it on your project? You can &lt;a href="http://www.typemock.com/Downloads.php" target="_blank"&gt;download&lt;/a&gt; a 21-day evaluation now. So race ahead and take Racer for a ride now!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4863981320393275450-6428345167307984845?l=blog.typemock.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Typemock?a=cg0snjAhWdE:l8U0ExVC6aE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Typemock?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Typemock/~4/cg0snjAhWdE" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/6428345167307984845?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4863981320393275450/posts/default/6428345167307984845?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Typemock/~3/cg0snjAhWdE/working-with-racer.html" title="Working with Racer" /><author><name>Gil Zilberfeld</name><uri>http://www.blogger.com/profile/18210181375618736629</uri><email>Gil.Zilberfeld@gmail.com</email><gd:extendedProperty name="OpenSocialUserId" value="14153621667886631279" /></author><feedburner:origLink>http://blog.typemock.com/2009/06/working-with-racer.html</feedburner:origLink></entry></feed>
