<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-4239795139949600836</id><updated>2009-12-02T19:50:03.986-08:00</updated><title type='text'>El blog de Rolando</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://r0lan2.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default'/><link rel='alternate' type='text/html' href='http://r0lan2.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rolando Martinez.</name><uri>http://www.blogger.com/profile/15040974254911347569</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4239795139949600836.post-709635215564948780</id><published>2009-03-19T12:07:00.000-07:00</published><updated>2009-03-19T12:13:54.867-07:00</updated><title type='text'>Perfomance en ASP.NET</title><content type='html'>Algunas veces sucede que al hacer un request a una pagina X, no encontramos que estamos haciendo llamdas identicas&lt;br /&gt;a la base de datos, ya sea porque tenemos distintos objetos de negocio que utilizan los&lt;br /&gt;mismos proveedores de datos (DAL) o porque dentro de las misma pagina se encuentran insertos dos o más controles de usuario (ascx).&lt;br /&gt;Ahora bien, una manera de optimizar nuestros tiempos de respuesta sin tener que ir a la base de datos dos o más veces es utilizar la coleccion items inserta dentro del objeto&lt;br /&gt;HttpContext.Current.&lt;br /&gt;&lt;img src="file:///C:/DOCUME%7E1/Mercatus/LOCALS%7E1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;br /&gt;Para que les quede más claro, un ejemplo escrito en VB.NET&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zSB2uELnx5I/ScKZJbLoTjI/AAAAAAAAAFM/Gy0sNCckJD4/s1600-h/blog.JPG"&gt;&lt;img style="cursor: pointer; width: 510px; height: 138px;" src="http://2.bp.blogspot.com/_zSB2uELnx5I/ScKZJbLoTjI/AAAAAAAAAFM/Gy0sNCckJD4/s400/blog.JPG" alt="" id="BLOGGER_PHOTO_ID_5314978897445015090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En el codigo anterior lo primero que se hace es consultar si existe un objeto  UserInfo cuya clave sea "user" &amp;amp; userID.toString, y en caso que no se encuentre&lt;br /&gt;se hace la llamda a la base de datos y se inserta el objeto dentro de la coleccion items de tal forma que la siguiente llamada al metodo GetUserByUserId utilize&lt;br /&gt;la informacion guardada en nuestra hashtable items.&lt;br /&gt;&lt;br /&gt;El post es corto y no entra en detalles, pero creo que se entiende.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4239795139949600836-709635215564948780?l=r0lan2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://r0lan2.blogspot.com/feeds/709635215564948780/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4239795139949600836&amp;postID=709635215564948780' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default/709635215564948780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default/709635215564948780'/><link rel='alternate' type='text/html' href='http://r0lan2.blogspot.com/2009/03/perfomance-en-aspnet.html' title='Perfomance en ASP.NET'/><author><name>Rolando Martinez.</name><uri>http://www.blogger.com/profile/15040974254911347569</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15302253231950840987'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zSB2uELnx5I/ScKZJbLoTjI/AAAAAAAAAFM/Gy0sNCckJD4/s72-c/blog.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4239795139949600836.post-672321137036843902</id><published>2009-02-10T11:32:00.000-08:00</published><updated>2009-02-10T18:30:31.781-08:00</updated><title type='text'>Perfomance: Como recorrer un ArrayList</title><content type='html'>Alquien se ha puesto a pensar, cual es la mejor forma de iterar sobre un objeto del tipo de dato arraylist?. Las alternativas para poder iterar sobre este tipo de dato es:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Usar for&lt;/li&gt;&lt;li&gt;Usar un foreach&lt;/li&gt;&lt;li&gt;o un ciclo while utilizando GetEnumerator()&lt;/li&gt;&lt;/ul&gt;Para salir de esta dudita, cree tres metodos para revisar cual de ellos es el menor tiempo toma en ser ejecutado.&lt;br /&gt;Aqui va el codigo,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Usando for:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zSB2uELnx5I/SZI2v4TgskI/AAAAAAAAADs/PCYXsc8cX34/s1600-h/usingfor.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_zSB2uELnx5I/SZI2v4TgskI/AAAAAAAAADs/PCYXsc8cX34/s400/usingfor.JPG" alt="" id="BLOGGER_PHOTO_ID_5301359907564466754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Usando forEach&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zSB2uELnx5I/SZI3AjgjgrI/AAAAAAAAAD0/MzsOhsGQ5hY/s1600-h/foreach.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 241px;" src="http://2.bp.blogspot.com/_zSB2uELnx5I/SZI3AjgjgrI/AAAAAAAAAD0/MzsOhsGQ5hY/s400/foreach.JPG" alt="" id="BLOGGER_PHOTO_ID_5301360194039808690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Usando GetEnumerator&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zSB2uELnx5I/SZI3O2JjTNI/AAAAAAAAAD8/09YgRcyzrUk/s1600-h/getenumerator.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 223px;" src="http://3.bp.blogspot.com/_zSB2uELnx5I/SZI3O2JjTNI/AAAAAAAAAD8/09YgRcyzrUk/s400/getenumerator.JPG" alt="" id="BLOGGER_PHOTO_ID_5301360439561768146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Y mis resultados fueron:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zSB2uELnx5I/SZI4DsVIQMI/AAAAAAAAAEE/tPbZnv7ffWE/s1600-h/resultados.JPG"&gt;&lt;img style="cursor: pointer; width: 336px; height: 136px;" src="http://3.bp.blogspot.com/_zSB2uELnx5I/SZI4DsVIQMI/AAAAAAAAAEE/tPbZnv7ffWE/s400/resultados.JPG" alt="" id="BLOGGER_PHOTO_ID_5301361347459039426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bueno, llego hasta aqui... saquen sus propias conclusiones :)&lt;br /&gt;Saludos,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4239795139949600836-672321137036843902?l=r0lan2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://r0lan2.blogspot.com/feeds/672321137036843902/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4239795139949600836&amp;postID=672321137036843902' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default/672321137036843902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default/672321137036843902'/><link rel='alternate' type='text/html' href='http://r0lan2.blogspot.com/2009/02/perfomance-como-recorrer-un-arraylist.html' title='Perfomance: Como recorrer un ArrayList'/><author><name>Rolando Martinez.</name><uri>http://www.blogger.com/profile/15040974254911347569</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15302253231950840987'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zSB2uELnx5I/SZI2v4TgskI/AAAAAAAAADs/PCYXsc8cX34/s72-c/usingfor.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4239795139949600836.post-2250712959203706621</id><published>2008-07-05T21:13:00.000-07:00</published><updated>2008-07-05T23:06:43.937-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nant'/><title type='text'>Como instalar Nant en Linux</title><content type='html'>Decidido en que &lt;a href="http://nant.sourceforge.net/"&gt;Nant&lt;/a&gt;, &lt;a href="http://nunit.org/index.php"&gt;NUnit&lt;/a&gt; y &lt;a href="http://ccnet.thoughtworks.com/"&gt;CCNet&lt;/a&gt; deben funcionar en Linux, comencé con la instalación de Nant. En español no encontre mucho ( ¿o no supe buscar?), asi que aquí les dejo los comandos para aquellas personas que necesiten hacer correr Nant en Linux :=)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Crear un archivo script llamado nant en /usr/local/bin&lt;/li&gt;&lt;li&gt;Abrelo y agrega la siguiente instruccion :   &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;       #!/bin/sh&lt;br /&gt;    exec mono /usr/local/nant/bin/NAnt.exe "$@&lt;br /&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;Se cambien los permiso del archivo.&lt;pre&gt;chmod a+x /usr/local/bin/nant&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;Para probar si realmente tu instalación fue un exito ejecuta el comando nant -help y deberias ver una lista con argumentos aceptados por NAnt. :)&lt;br /&gt;&lt;br /&gt;Para el caso de &lt;a href="http://nantcontrib.sourceforge.net/"&gt;NantContrib&lt;/a&gt;, solo debieran copiar el contenido de la carpeta bin de nantcontrib dentro de la carpeta bin de NAnt.&lt;br /&gt;&lt;br /&gt;Espero este pequeño post te ayude :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4239795139949600836-2250712959203706621?l=r0lan2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://r0lan2.blogspot.com/feeds/2250712959203706621/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4239795139949600836&amp;postID=2250712959203706621' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default/2250712959203706621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default/2250712959203706621'/><link rel='alternate' type='text/html' href='http://r0lan2.blogspot.com/2008/07/como-instalar-nant-en-linux.html' title='Como instalar Nant en Linux'/><author><name>Rolando Martinez.</name><uri>http://www.blogger.com/profile/15040974254911347569</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15302253231950840987'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4239795139949600836.post-2047172360511542350</id><published>2008-04-20T09:01:00.000-07:00</published><updated>2008-04-20T16:33:24.627-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySql'/><category scheme='http://www.blogger.com/atom/ns#' term='Nant'/><title type='text'>Como crear una tarea MySql para Nant</title><content type='html'>&lt;span style=";font-family:verdana;font-size:78%;"  &gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;Hola a todos, hace tiempo que no escribía, pero ahora ya estoy aquí con alguna información interesante!!!&lt;br /&gt;&lt;br /&gt;Pero bueno, vamos al grano. Hace algunas semanas atrás intente ejecutar un pequeño script de MySql utilizando la herramienta &lt;a href="http://nant.sourceforge.net/"&gt;Nant&lt;/a&gt;(una buena referencia de lo que es Nant la puedes encontrar aquí) . Y lo primero que hice para llegar a mi objetivo es suscribirme a la lista de nant y enviar un pequeño correo explicando mi &lt;a href="http://www.nabble.com/Executing-a-mysql-script-inside-Nant-to16256023.html"&gt;problema&lt;/a&gt;, y que sonaba como esto:&lt;br /&gt;"Hola a todos, necesito ayuda para correr un script de MySql utilizando Nant" (bueno el correo era algo más extenso, pero la idea se entiende ).&lt;br /&gt;Lamentablemente, para mí, no logre encontrar una solución. Algunas personas de la  lista me aconsejaron que utilizara la tarea sql del proyecto &lt;a href="http://nantcontrib.sourceforge.net/"&gt;nantcontrib&lt;/a&gt;, pero no hubo caso (la respuesta del porque esta tarea no me servia es algo extensa, así que creo que la daré en un próximo articulo).&lt;br /&gt;Y entonces, ¿que paso?, que me decidí a escribir mi propia tarea para MySql. =). El código es bastante sencillo y me base en el código de la tarea sql del proyecto Nantconttrib.&lt;br /&gt;Si alguien quiere el código se encuentra &lt;a href="http://rapidshare.com/files/109023163/MySql.Tasks.rar"&gt;aquí&lt;/a&gt;.&lt;br /&gt;Una vez compilada la dll, ustedes podrán escribir archivos .build como el siguiente&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zSB2uELnx5I/SAttVTRyKGI/AAAAAAAAAB0/NKE7qJAVzGQ/s1600-h/buildfile.JPG"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_zSB2uELnx5I/SAttVTRyKGI/AAAAAAAAAB0/NKE7qJAVzGQ/s400/buildfile.JPG" alt="" id="BLOGGER_PHOTO_ID_5191363208194173026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Espero esto le ayude a alguna persona que se ha topado con el mismo problema que yo =)&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4239795139949600836-2047172360511542350?l=r0lan2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://r0lan2.blogspot.com/feeds/2047172360511542350/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4239795139949600836&amp;postID=2047172360511542350' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default/2047172360511542350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default/2047172360511542350'/><link rel='alternate' type='text/html' href='http://r0lan2.blogspot.com/2008/04/como-crear-una-tarea-mysql-para-nant.html' title='Como crear una tarea MySql para Nant'/><author><name>Rolando Martinez.</name><uri>http://www.blogger.com/profile/15040974254911347569</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15302253231950840987'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zSB2uELnx5I/SAttVTRyKGI/AAAAAAAAAB0/NKE7qJAVzGQ/s72-c/buildfile.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4239795139949600836.post-3125763218987920113</id><published>2008-03-20T07:01:00.000-07:00</published><updated>2008-03-20T14:19:12.618-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MbUnit'/><title type='text'>Cómo ejecutar nuestros tests con MbUnit</title><content type='html'>&lt;p style="font-family: verdana;" class="MsoNormal"&gt;&lt;span style=";font-size:85%;" &gt;A continuación les dejo las tres formas de ejecutar nuestros Test con MBUnit:&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm; font-family: verdana;" type="disc"&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-size:85%;" &gt;Mediante      consola: Dentro de los &lt;span style=""&gt; &lt;/span&gt;archivos      instalados por MbUnit se encuentra la aplicación de consola &lt;i style=""&gt;MbUnit.Cons.exe&lt;/i&gt;. Un ejemplo de cómo      usarlo se encuentra &lt;/span&gt;&lt;span style=";font-size:85%;" &gt;&lt;o:p&gt;&lt;a href="http://r0lan2.blogspot.com/2008/03/introduccin-mbunit.html"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;    &lt;ul style="margin-top: 0cm; font-family: verdana;" type="disc"&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-size:85%;" &gt;Via      aplicación de Windows: Junto con la aplicación de consola, se encuentra      una aplicación de Windows llamada &lt;i style=""&gt;MbUnit.GUI.exe.      &lt;/i&gt;Para mas información de cómo utilizarla ver el siguiente &lt;a href="http://www.nxtgenug.net/Article.aspx?ArticleID=107"&gt;post.&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.nxtgenug.net/Article.aspx?ArticleID=107"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-size:85%;" &gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;      &lt;ul style="margin-top: 0cm; font-family: verdana;" type="disc"&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-size:85%;" &gt;TestDriven.Net:      Add-in que se integra con Visual Studio y el cual te permite ejecutar tus      test dentro tu entorno de desarrollo. Esto sin necesidad de usar ninguna      de las dos primeras opciones. Para más información ver mi &lt;a href="http://r0lan2.blogspot.com/2008/03/usando-mbunit-y-testdrivennet.html"&gt;post&lt;/a&gt; anterior.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: verdana;font-size:85%;" &gt;&lt;br /&gt;Saludos,&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4239795139949600836-3125763218987920113?l=r0lan2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://r0lan2.blogspot.com/feeds/3125763218987920113/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4239795139949600836&amp;postID=3125763218987920113' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default/3125763218987920113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default/3125763218987920113'/><link rel='alternate' type='text/html' href='http://r0lan2.blogspot.com/2008/03/cmo-ejecutar-nuestros-tests-con-mbunit.html' title='Cómo ejecutar nuestros tests con MbUnit'/><author><name>Rolando Martinez.</name><uri>http://www.blogger.com/profile/15040974254911347569</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15302253231950840987'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4239795139949600836.post-2139214691817177578</id><published>2008-03-15T06:26:00.000-07:00</published><updated>2008-03-15T06:47:00.342-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MbUnit'/><title type='text'>Usando MbUnit y TestDriven.Net.</title><content type='html'>&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;En el post anterior le he mostrado como ejecutar nuestras pruebas de unidad utilizando el programa de consola distribuido con MbUnit, y aunque es una opción valida para ejecutar nuestros tests, existen otras maneras de hacerlo.&lt;/span&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;A continuación mostraré como usar TestDriven.Net para ejecutar nuestras pruebas. Para el poder llevar a cabo este ejemplo es necesario instalar:&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="square"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;&lt;a href="http://www.testdriven.net/"&gt;TestDriven.Net&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;a href="http://www.mbunit.com/"&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;Mbunit&lt;/span&gt;&lt;/a&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;      &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;Una vez instalado los prerrequisitos, crearemos un ejemplo para ver como trabaja TestDriven.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;        &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;Lo primero será crear un proyecto del tipo biblioteca de clases. Luego de esto agregaremos la referencia de MbUnit a nuestro proyecto.&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;Para nuestro ejemplo he creado un ejemplo que no tiene ningún tipo de “lógica”, y solo fue hecho para fines didácticos. El proyecto esta compuesto de dos clases una llamada datamanager, que esta compuesta por una única función que devuelve un objeto del tipo datatable, y otra clase llamada&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;DataManagerTest, la cual contiene un metodo GetDataTableTest que realiza una assert sobre la funcion GetDataTable de la primera clase.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: center;"&gt;      &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zSB2uELnx5I/R9vSpOn2rQI/AAAAAAAAABA/7obtpuMFWlA/s1600-h/clase1.JPG"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_zSB2uELnx5I/R9vSpOn2rQI/AAAAAAAAABA/7obtpuMFWlA/s400/clase1.JPG" alt="" id="BLOGGER_PHOTO_ID_5177963802334244098" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left: 35.4pt;"&gt;&lt;span style="font-size:85%;"&gt;segunda clase....&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 35.4pt;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zSB2uELnx5I/R9vTD-n2rRI/AAAAAAAAABI/pawSbiOsC9I/s1600-h/clase2.JPG"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_zSB2uELnx5I/R9vTD-n2rRI/AAAAAAAAABI/pawSbiOsC9I/s400/clase2.JPG" alt="" id="BLOGGER_PHOTO_ID_5177964261895744786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:&amp;quot;;font-size:85%;"  &gt;&lt;span style="color:blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;Luego de hacer los pasos antes comentados ya es hora de correr nuestros tests &lt;/span&gt;&lt;span style=";font-family:Wingdings;font-size:85%;"  &gt;&lt;span style=""&gt;J&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;. Lo único que deben hacer click derecho sobre nuestra clase DataManagerTest y elegir la opción “Run Test(s)”. &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zSB2uELnx5I/R9vPtun2rNI/AAAAAAAAAAo/K_g9ctGkvaM/s1600-h/RunTestDriven.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_zSB2uELnx5I/R9vPtun2rNI/AAAAAAAAAAo/K_g9ctGkvaM/s320/RunTestDriven.JPG" alt="" id="BLOGGER_PHOTO_ID_5177960581108772050" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;Cuando se ejecute nuestros tests, ustedes podrán ver la salida o el resultado de la ejecución en la ventana “output” de Visual Studio. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zSB2uELnx5I/R9vQEOn2rOI/AAAAAAAAAAw/OjVowOwNZl0/s1600-h/Test.JPG"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_zSB2uELnx5I/R9vQEOn2rOI/AAAAAAAAAAw/OjVowOwNZl0/s320/Test.JPG" alt="" id="BLOGGER_PHOTO_ID_5177960967655828706" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;  &lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;  &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;Como resumen, entrego lo que he hecho en este post:&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="square"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;Instalar Mbunit&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;Instalar TestDriven&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;Crear proyecto del tipo      biblioteca de clases&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;Agregar referencia de Mbunit      a nuestro proyecto&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;Correr nuestros test usando      TestDriven&lt;/span&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;span style="font-size:85%;"&gt;Como ven, el uso de estas herramientas es bastante sencillo! Ahora solo deben usarlas!!&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4239795139949600836-2139214691817177578?l=r0lan2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://r0lan2.blogspot.com/feeds/2139214691817177578/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4239795139949600836&amp;postID=2139214691817177578' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default/2139214691817177578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default/2139214691817177578'/><link rel='alternate' type='text/html' href='http://r0lan2.blogspot.com/2008/03/usando-mbunit-y-testdrivennet.html' title='Usando MbUnit y TestDriven.Net.'/><author><name>Rolando Martinez.</name><uri>http://www.blogger.com/profile/15040974254911347569</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15302253231950840987'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zSB2uELnx5I/R9vSpOn2rQI/AAAAAAAAABA/7obtpuMFWlA/s72-c/clase1.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4239795139949600836.post-6750682134881579512</id><published>2008-03-10T17:37:00.000-07:00</published><updated>2008-03-12T07:41:36.428-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MbUnit'/><title type='text'>Introducción a Mbunit</title><content type='html'>&lt;span style="font-size:85%;"&gt;Al intentar buscar material&lt;span style=""&gt;  &lt;/span&gt;en español de &lt;a href="http://www.mbunit.com/"&gt;mbunit &lt;/a&gt;no he logrado encontrar mucha información relacionada con el tema y&lt;span style=""&gt;  &lt;/span&gt;es por esto que he querido hacer este post. La mayor parte de lo escrito  lo  obtuve del sitio oficial de este sitio.&lt;/span&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;Mbunit, es un framework de pruebas de unidad escrito originalmente por Jonathan 'Peli' de Halleux y liderado actualmente por &lt;a href="http://blog.bits-in-motion.com/"&gt;Jeff Brown&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Desde sus comienzos este proyecto ha implementado todas las características que Nunit y csUnit, pero con la extensibilidad que ellos no tienen.&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;Bien, una vez dada una pequeña introducción, continuare con un ejemplo muy simple de lo que podemos hacer mbunit. &lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;La instalación&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Antes de empezar deberías tener instalado lo siguiente en tu computador:&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul  style="margin-top: 0cm;font-family:verdana;" type="square"&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;Framework .Net en sus sabores 1.1 o&lt;span style=""&gt;  &lt;/span&gt;2.0&lt;span style=""&gt;       &lt;/span&gt;(la versión 2008 aun no la tengo instalada, asi que no puedo hacer      comentarios si mbunit trabaja o no sobre esta ultima versión del framework)&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;La actual versión de Mbunit, la cual puedes      &lt;a href="http://www.mbunit.com/Downloads.aspx"&gt;descargar &lt;/a&gt;desde su sitio. &lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.testdriven.net/"&gt;TestDriven&lt;/a&gt;. Este es un complemento a Visual Studio      que aunque no es necesario, es realmente útil para poder correr nuestras      pruebas de unidad dentro del Visual&lt;span style=""&gt;       &lt;/span&gt;Studio. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"  style="margin-left: 18pt; text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Y? ya los instalaste?. Bueno, ahora prosigamos.&lt;br /&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Escribiendo nuestros&lt;span style=""&gt;  &lt;/span&gt;primeros tests&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;Tal cual como dice el el manual de mbunit: escribir test no es para nada complicado es un simple grupo de Fixtures, tests y asserts.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul  style="margin-top: 0cm;font-family:verdana;" type="square"&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;Assert: Corresponde a una comprobación. Por ejemplo,      comprobar que un valor es verdadero, que un número es mayor que otro, que      un objeto es nulo, etc. &lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;Un Test:&lt;span style=""&gt;  &lt;/span&gt;Es      una colección de assert que intentar comprobar que una seria de acciones      de tu código de producción están correctas o hacen lo que esperas. &lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;Un Fixture es una colección de tests que por lo      general están relacionados en una única clase. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Dentro de Mbunit exiten mas términos que poco a poco iré comentando, pero por el momento solo utilizare lo que arriba describí.&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Entonces para comenzar escribiré algunos tests para la una típica clases&lt;span style=""&gt;  &lt;/span&gt;que ustedes ya conocen, la pila.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;Public Class Stack&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;Private elements As New ArrayList&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;    &lt;/span&gt;Public ReadOnly Property IsEmpty() As Boolean&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Get&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;Return (elements.Count = 0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;End Get&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;End Property&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;span style=""&gt;    &lt;/span&gt;Public Sub Push(ByVal element As Object)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;span style=""&gt;     &lt;/span&gt;elements.Insert(0, element)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;End Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;Public Function Pop() As Object&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Dim topelement As Object = Top()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;elements.RemoveAt(0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Return topelement&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;End Function&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;Public Function Top() As Object&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;If IsEmpty Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;            &lt;/span&gt;Throw New InvalidOperationException("Stack is Empty")&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;End If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Return elements(0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;End Function&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;End Class&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;y justo con la pila esta su compañero inseparable la StackTest&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;Imports MbUnit.Framework&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;Imports MiLibreria&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;testfixture()&gt; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/testfixture()&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;Public Class StackTest&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;test()&gt; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/test()&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;Public Sub IsEmptyTest()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Dim myStack As New Stack&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Assert.IsTrue(myStack.IsEmpty)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;End Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;test()&gt; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/test()&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;Public Sub PushTest()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;        &lt;/span&gt;Dim myStack As New Stack&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Assert.IsTrue(myStack.IsEmpty)&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;myStack.Push(New Object)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;myStack.Push(New Object)&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Assert.IsFalse(myStack.IsEmpty)&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;End Sub&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;test()&gt; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/test()&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;Public Sub PopTest()&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Dim myStack As New Stack&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Assert.IsTrue(myStack.IsEmpty)&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;myStack.Push(New Object)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;myStack.Pop()&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Assert.IsTrue(myStack.IsEmpty)&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;End Sub&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;test()&gt; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/test()&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;Public Sub Top()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;        &lt;/span&gt;Dim myStack As New Stack&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Assert.IsTrue(myStack.IsEmpty)&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;myStack.Push(New Object)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;myStack.Pop()&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;Assert.IsTrue(myStack.IsEmpty)&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;End Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:78%;"&gt;End Class&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;Creo que no hay necesidad de explicar el código de la clase stack, pero si lo es para la clase stacktest. Básicamente esta clase contiene 4 métodos, donde cada uno de ellos prueba o revisa un método en particular de la clase stack (push, pop, isempty, top) . Como pueden ver en la clase cada método es etiquetado con &lt;test()&gt;, lo cual le permite saber a Mbunit que aquel es un método de test por lo cual debe ejecutar el código que se encuentra en su interior.&lt;/test()&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Junto con la etiqueta &lt;test()&gt;, podemos ver la etiqueta &lt;testfixture()&gt;, con la cual indicamos a Mbunit que esta clase es una clase de test. En Mbunit, existen muchas etiquetas, pero para simplificar este ejemplo, he querido utilizar las etiquetas básicas del mismo.&lt;/testfixture()&gt;&lt;/test()&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Y...¿Como configuras tu solución?&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Para este post, he creado una solución con 3 proyectos, donde el proyecto de test contiene una referencia al proyecto donde se encuentra el clase stack&lt;span style=""&gt;  &lt;/span&gt;junto con&lt;span style=""&gt;  &lt;/span&gt;una referencia a MbUnit.Framework.dll ( que para mi instalación quedo en C:\Archivos de programa\MbUnit).Las referencias quedan como ves en la próxima imagen.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zSB2uELnx5I/R9XWPOn2rKI/AAAAAAAAAAM/uGrDiIJXViA/s1600-h/solucion.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_zSB2uELnx5I/R9XWPOn2rKI/AAAAAAAAAAM/uGrDiIJXViA/s200/solucion.JPG" alt="" id="BLOGGER_PHOTO_ID_5176278903843892386" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Y... ¿Como puedes ver como corren los tests?&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"  style="text-align: justify;font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Respuesta: Facil, para poder lograr esto tienes tres opciones: correr un tests en una consola, una interfaz grafica que te entrega Mbunit y por ultimo, pero no menos importante, con TestDriven.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" face="verdana" style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;Para el caso de nuestro ejemplo, lo ejecutaremos por medio de la consola (utilizando el comando MBunit.Cons.exe TestsMilibreria.dll )&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify; font-family: verdana;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zSB2uELnx5I/R9XX3en2rMI/AAAAAAAAAAc/P0P--Y0jfXE/s1600-h/consolerunner.JPG"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_zSB2uELnx5I/R9XX3en2rMI/AAAAAAAAAAc/P0P--Y0jfXE/s320/consolerunner.JPG" alt="" id="BLOGGER_PHOTO_ID_5176280694845254850" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify; font-family: verdana;"&gt;&lt;span style="font-size:85%;"&gt;Bueno, eso ha sido todo por hoy :D. Espero postear muchas otras cosas de Mbunit.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4239795139949600836-6750682134881579512?l=r0lan2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://r0lan2.blogspot.com/feeds/6750682134881579512/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4239795139949600836&amp;postID=6750682134881579512' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default/6750682134881579512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default/6750682134881579512'/><link rel='alternate' type='text/html' href='http://r0lan2.blogspot.com/2008/03/introduccin-mbunit.html' title='Introducción a Mbunit'/><author><name>Rolando Martinez.</name><uri>http://www.blogger.com/profile/15040974254911347569</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15302253231950840987'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zSB2uELnx5I/R9XWPOn2rKI/AAAAAAAAAAM/uGrDiIJXViA/s72-c/solucion.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4239795139949600836.post-8289730932831001961</id><published>2008-03-10T17:25:00.000-07:00</published><updated>2008-03-10T17:34:39.583-07:00</updated><title type='text'>Presentación</title><content type='html'>&lt;p  class="MsoNormal" style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Antes de decir cualquier cosa....&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Hola a todos los lectores de este blog, mi nombre es Rolando Martínez y soy alumno tesista de la Carrera de Ingeniería en Computación de la &lt;a href="http://www.uach.cl/"&gt;Universidad Austral de Chile&lt;/a&gt;. Actualmente me desempeño como desarrollador en una empresa noruega con sede en Chile llamada &lt;a href="http://www.mercatus.no/"&gt;Mercatus&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Uno de mis objetivos en este blog, es postear todo lo relacionado con desarrollo de software, y principalmente temas que solo han sido abordado en ingles, pero no español (o muy poco)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p  class="MsoNormal" style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Saludos,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:verdana;"&gt;&lt;span style="font-size:85%;"&gt;Rolando.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4239795139949600836-8289730932831001961?l=r0lan2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://r0lan2.blogspot.com/feeds/8289730932831001961/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4239795139949600836&amp;postID=8289730932831001961' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default/8289730932831001961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4239795139949600836/posts/default/8289730932831001961'/><link rel='alternate' type='text/html' href='http://r0lan2.blogspot.com/2008/03/presentacion.html' title='Presentación'/><author><name>Rolando Martinez.</name><uri>http://www.blogger.com/profile/15040974254911347569</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15302253231950840987'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>