Design Guidelines http://blogs.ugidotnet.org/rucka/category/Design Guidelines.aspx Design Guidelines it-IT Gianluca Carucci Subtext Version 2.6.0.0 Assert multipli all'interno di un singolo unit test http://blogs.ugidotnet.org/rucka/archive/2006/10/04/49921.aspx <p>Roy Osherove fornisce in <a href="http://weblogs.asp.net/rosherove/archive/2006/10/04/Avoid-multiple-asserts-in-a-single-unit-test_3A00_-revisited.aspx">questo</a> post, alcuni validi motivi del perchè secondo lui non dovrebbe essere possibile permettere di fallire più assert nell'esecuzione di un singolo unit test. Il post è in contrapposizione con un'altro <a href="http://dotavery.com/blog/archive/2006/09/25/21263.aspx">post</a> di James Avery dove viene spiegato invece, il perchè questa feature potrebbe essere utile.</p> <p> Un piccolo assaggio che quoto in pieno:</p> <p>"<em>Even if we assume that all the asserts are run, you're essentially running multiple tests on code that has "dirty" state. For example, asserting on the result of a method call may actually change the state of the object under test so that the next call to that method may actually be skewed because of the previous asserts. that's a bad world to be in. having single assert per test means you also know exactly the state of your object before the assert.</em>"</p><div style="margin: 0px; padding: 0px; display: inline;" contenteditable="false" class="wlWriterSmartContent">Technorati tags: <a rel="tag" href="http://technorati.com/tags/UnitTest">UnitTest</a>, <a rel="tag" href="http://technorati.com/tags/TDD">TDD</a>, <a rel="tag" href="http://technorati.com/tags/Agile">Agile</a>, <a rel="tag" href="http://technorati.com/tags/Assert">Assert</a>, <a rel="tag" href="http://technorati.com/tags/assert">assert</a></div><img src="http://blogs.ugidotnet.org/rucka/aggbug/49921.aspx" width="1" height="1" /> Gianluca Carucci http://blogs.ugidotnet.org/rucka/archive/2006/10/04/49921.aspx Wed, 04 Oct 2006 10:48:00 GMT http://blogs.ugidotnet.org/rucka/archive/2006/10/04/49921.aspx#feedback 1 http://blogs.ugidotnet.org/rucka/comments/commentRss/49921.aspx NotSupportedException e NotImplementedException http://blogs.ugidotnet.org/rucka/archive/2004/07/30/409.aspx Che differenza c'&#232; tra queste due eccezioni? Chi meglio di <A href="http://blogs.msdn.com/brada/">Brad Abrams </A>pu&#242; <A href="http://blogs.msdn.com/brada/archive/2004/07/29/201354.aspx">spiegarcelo</A>!<img src="http://blogs.ugidotnet.org/rucka/aggbug/409.aspx" width="1" height="1" /> Gianluca Carucci http://blogs.ugidotnet.org/rucka/archive/2004/07/30/409.aspx Fri, 30 Jul 2004 10:26:00 GMT http://blogs.ugidotnet.org/rucka/archive/2004/07/30/409.aspx#feedback http://blogs.ugidotnet.org/rucka/comments/commentRss/409.aspx IPEndPoint.Create(SocketAddress), perchè è un Instance Method???? http://blogs.ugidotnet.org/rucka/archive/2004/07/27/406.aspx <P>Evidentemente non sono l'unico a essermi fatto questa domanda....</P> <P> Dando un'occhiata al codice di Mono, nell'implementazione della propriet&#224; LocalEndPoint e RemoteEndPoint si pu&#242; notare il seguente codice (e i commenti) :</P> <P>"...<FONT color=#0000ff size=2></P> <P>if</FONT><FONT size=2>(sa.Family==AddressFamily.InterNetwork || sa.Family==AddressFamily.InterNetworkV6 ) {</P> <P></FONT><FONT color=#008000 size=2>// Stupidly, EndPoint.Create() is an</P></FONT><FONT size=2> <P></FONT><FONT color=#008000 size=2>// instance method</P></FONT><FONT size=2> <P></FONT><FONT color=#0000ff size=2>return</FONT><FONT size=2> </FONT><FONT color=#0000ff size=2>new</FONT><FONT size=2> IPEndPoint(0, 0).Create(sa);</P> <P>}</P></FONT> <P>..."</P> <P>Chiss&#224; se chi ha progettato (o implementato) la classe IPEndPoint lavora ancora in Microsoft:P</P><img src="http://blogs.ugidotnet.org/rucka/aggbug/406.aspx" width="1" height="1" /> Gianluca Carucci http://blogs.ugidotnet.org/rucka/archive/2004/07/27/406.aspx Tue, 27 Jul 2004 16:28:00 GMT http://blogs.ugidotnet.org/rucka/archive/2004/07/27/406.aspx#feedback http://blogs.ugidotnet.org/rucka/comments/commentRss/406.aspx Qualche linea guida di design di librerie http://blogs.ugidotnet.org/rucka/archive/2004/04/21/399.aspx <P>Segnalo qualche post del blog di Brad Abrams in cui vengono elencate alcune (OTTIME) regole da tenere presente nella costruzione delle classi. Da stampare e attaccare sopra il monitor:)</P> <P><A href="http://blogs.msdn.com/brada/archive/2003/07/01/50088.aspx">On Designing Good Libraries -- Part I</A></P> <P><A id=viewpost.ascx_TitleUrl href="http://blogs.msdn.com/brada/archive/2003/07/05/50118.aspx">On Designing Good Libraries -- Part II</A> </P> <P><A href="http://blogs.msdn.com/brada/archive/2003/07/13/50140.aspx">On Designing Good Libraries -- Part III</A></P> <P><A href="http://blogs.msdn.com/brada/archive/2003/07/26/50192.aspx">On Designing Good Libraries -- Part IV</A></P> <P>E se non vi bastasse.... c'&#232; sempre questa <A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconnetframeworkdesignguidelines.asp">serie di articoli</A> sull'MSDN... </P> <P>Buon Refactoring....:)</P><img src="http://blogs.ugidotnet.org/rucka/aggbug/399.aspx" width="1" height="1" /> Gianluca Carucci http://blogs.ugidotnet.org/rucka/archive/2004/04/21/399.aspx Wed, 21 Apr 2004 12:37:00 GMT http://blogs.ugidotnet.org/rucka/archive/2004/04/21/399.aspx#feedback http://blogs.ugidotnet.org/rucka/comments/commentRss/399.aspx Il 90% dei problemi di performance sono nel design non nel codice http://blogs.ugidotnet.org/rucka/archive/2004/02/12/393.aspx Questa &#232; una delle "Ten Rules of Performaces" scritte da Paul Vick nel suo <A href="http://www.panopticoncentral.net/PermaLink.aspx/eacfc5e0-42df-44b0-bb9a-94354b689b17">blog</A>. C'&#232; sempre da imparare... :)<img src="http://blogs.ugidotnet.org/rucka/aggbug/393.aspx" width="1" height="1" /> Gianluca Carucci http://blogs.ugidotnet.org/rucka/archive/2004/02/12/393.aspx Thu, 12 Feb 2004 10:25:00 GMT http://blogs.ugidotnet.org/rucka/archive/2004/02/12/393.aspx#feedback http://blogs.ugidotnet.org/rucka/comments/commentRss/393.aspx