<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.ms/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"><channel><title>Lucas Ontivero : Herramientas, TDD</title><link>http://geeks.ms/blogs/lontivero/archive/tags/Herramientas/TDD/default.aspx</link><description>Etiquetas: Herramientas, TDD</description><dc:language /><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>Sobre los frameworks de BDD</title><link>http://geeks.ms/blogs/lontivero/archive/2010/09/02/if-bdd-tdd-console-write-que-me-parta-un-rayo.aspx</link><pubDate>Thu, 02 Sep 2010 04:30:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:181364</guid><dc:creator>Lucas Ontivero</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lontivero/rsscomments.aspx?PostID=181364</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lontivero/commentapi.aspx?PostID=181364</wfw:comment><comments>http://geeks.ms/blogs/lontivero/archive/2010/09/02/if-bdd-tdd-console-write-que-me-parta-un-rayo.aspx#comments</comments><description>&lt;p&gt;BDD como idea original me parece correctísima. No obstante, la mayoría de los frameworks para llevar sus conceptos a cabo en C# me parecen ridículos. Veamos una misma prueba de ejemplo escrita de dos maneras:&lt;/p&gt;  &lt;p&gt;Alternativa 1: &lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;height:344px;color:black;font-size:9pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;p&gt;[Subject(&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(Account), &lt;span style="color:#006080;"&gt;&amp;quot;Funds tranfer&amp;quot;&lt;/span&gt;)]&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; When_transferring_between_two_accounts&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; Account fromAccount;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; Account toAccount;&lt;/p&gt;&lt;p&gt;    Establish context = () =&amp;gt;&lt;br /&gt;    {&lt;br /&gt;        fromAccount = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Account { Balance = 1m };&lt;br /&gt;        toAccount = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Account { Balance = 1m };&lt;br /&gt;    };&lt;/p&gt;&lt;p&gt;    Because of = () =&amp;gt; fromAccount.Transfer(1m, toAccount);&lt;/p&gt;&lt;p&gt;    It should_debit_the_from_account_by_the_amount_transferrend = () =&amp;gt;&lt;br /&gt;        fromAccount.Balance.ShouldEqual(0m);&lt;/p&gt;&lt;p&gt;    It should_credit_the_to_account_by_the_amount_transferrend = () =&amp;gt;&lt;br /&gt;        toAccount.Balance.ShouldEqual(2m);&lt;br /&gt;}&lt;/p&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Alternativa 2: &lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;font-size:9pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;&lt;p&gt;[TestFixture]&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; TransferringSpces&lt;br /&gt;{&lt;br /&gt;    [Test]&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; It_should_debit_from_source_account_and_credit_to_target_account()&lt;br /&gt;    {&lt;br /&gt;        var fromAccount = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Account(balance: 1m);&lt;br /&gt;        var toAccount = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Account(balance: 1m);&lt;/p&gt;&lt;p&gt;        fromAccount.Transfer(1m, toAccount);&lt;/p&gt;&lt;p&gt;        Assert.That(toAccount.Balance, Is.EqualTo(2m));&lt;br /&gt;        Assert.That(fromAccount.Balance, Is.EqualTo(0m));&lt;br /&gt;    }&lt;br /&gt;}&lt;/p&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;span style="line-height:normal;white-space:normal;"&gt;¿Es la primera prueba más clara que la segunda?, ¿Ayudan todos esos delegados &lt;/span&gt;&lt;span style="line-height:normal;white-space:normal;"&gt;(Establish, Because, It) a comunicar mejor el comportamiento del método que hace la transferencia?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=181364" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Dise_26002300_241_3B00_o/default.aspx">Dise&amp;#241;o</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/.Net/default.aspx">.Net</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Conceptos/default.aspx">Conceptos</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/TDD/default.aspx">TDD</category></item><item><title>TDD y Yo</title><link>http://geeks.ms/blogs/lontivero/archive/2010/06/13/tdd-y-yo.aspx</link><pubDate>Sun, 13 Jun 2010 22:30:57 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:178018</guid><dc:creator>Lucas Ontivero</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lontivero/rsscomments.aspx?PostID=178018</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/lontivero/commentapi.aspx?PostID=178018</wfw:comment><comments>http://geeks.ms/blogs/lontivero/archive/2010/06/13/tdd-y-yo.aspx#comments</comments><description>Hace poco comencé un nuevo desarrollo y decidí grabar algunos videos de los cuales solo publiqué los primeros tres. Sucede que el hecho de saber que alguien me estaba mirando me hacía prestar mayor atención a mis palabras que al código que debía escribir. No obstante a ello, continué grabándome para tomar el tiempo y estudiarme. La primera parte de ese desarrollo está completado y estos son los números: 66 pruebas unitarias. 15 clases. (solo 4 centrales, el resto son datacontracts, excepciones y...(&lt;a href="http://geeks.ms/blogs/lontivero/archive/2010/06/13/tdd-y-yo.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://geeks.ms/aggbug.aspx?PostID=178018" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Arquitectura/default.aspx">Arquitectura</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Dise_26002300_241_3B00_o/default.aspx">Dise&amp;#241;o</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/.Net/default.aspx">.Net</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Project+Management/default.aspx">Project Management</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Investigaciones/default.aspx">Investigaciones</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Gestion+de+Proyectos/default.aspx">Gestion de Proyectos</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Gesti_26002300_243_3B00_n+de+proyectos/default.aspx">Gesti&amp;#243;n de proyectos</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Conceptos/default.aspx">Conceptos</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/Productividad/default.aspx">Productividad</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/XP/default.aspx">XP</category><category domain="http://geeks.ms/blogs/lontivero/archive/tags/TDD/default.aspx">TDD</category></item></channel></rss>