<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Unit Testing: otra manera de testear</title>
	<atom:link href="http://blog.rodrigoarce.com/unit-testing-otra-manera-de-testear/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rodrigoarce.com/unit-testing-otra-manera-de-testear/</link>
	<description>El blog de Albo (aka Rodrigo Arce)</description>
	<pubDate>Mon, 06 Feb 2012 05:58:28 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
		<item>
		<title>By: Ricardo Rodriguez Salazar</title>
		<link>http://blog.rodrigoarce.com/unit-testing-otra-manera-de-testear/#comment-267</link>
		<dc:creator>Ricardo Rodriguez Salazar</dc:creator>
		<pubDate>Fri, 30 Nov 2012 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://rarce.com.ar/unit-testing-otra-manera-de-testear/#comment-267</guid>
		<description>Hola albo, mira tengo un problemita, al momento de hacer pruebas con los contenedores ob_start() ob_get_contents() y eso, no me muestra el mensaje de pass o error en mi prueba, a menos que solo coloque la funcion $res = ob_get_contents() pero sin colocar de donde jala la funcion real.... te paso un ejemplo: 

public function testCheckParameterOrFail(){
		ob_start();
	        //$res = $this-&#62;tcourse-&#62;check_parameter_or_fail();
                $res =ob_get_contents();
	        ob_end_clean();
		//$this-&#62;assertTrue(is_string($res));
		$this-&#62;assertFalse($res);
	        $this-&#62;assertFalse($res=== null);
	        //$this-&#62;assertEqual(null,$res);
}
si descomento las otras lineas, no me sale ninguna prueba, pero si dejo asi como esta, sale que pasa, solo que de esa manera, no estoy probando nada, que puedo hacer ?</description>
		<content:encoded><![CDATA[<p>Hola albo, mira tengo un problemita, al momento de hacer pruebas con los contenedores ob_start() ob_get_contents() y eso, no me muestra el mensaje de pass o error en mi prueba, a menos que solo coloque la funcion $res = ob_get_contents() pero sin colocar de donde jala la funcion real&#8230;. te paso un ejemplo: </p>
<p>public function testCheckParameterOrFail(){<br />
		ob_start();<br />
	        //$res = $this-&gt;tcourse-&gt;check_parameter_or_fail();<br />
                $res =ob_get_contents();<br />
	        ob_end_clean();<br />
		//$this-&gt;assertTrue(is_string($res));<br />
		$this-&gt;assertFalse($res);<br />
	        $this-&gt;assertFalse($res=== null);<br />
	        //$this-&gt;assertEqual(null,$res);<br />
}<br />
si descomento las otras lineas, no me sale ninguna prueba, pero si dejo asi como esta, sale que pasa, solo que de esa manera, no estoy probando nada, que puedo hacer ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: arthur</title>
		<link>http://blog.rodrigoarce.com/unit-testing-otra-manera-de-testear/#comment-266</link>
		<dc:creator>arthur</dc:creator>
		<pubDate>Wed, 30 Nov 2011 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://rarce.com.ar/unit-testing-otra-manera-de-testear/#comment-266</guid>
		<description>Hola
Tengo un problema con una prueba export, ojala me puedan ayudar.
El codigo del metodo a probar es el siguiente:

function export_table_csv($data, $filename = 'export')
	{			
		$file = api_get_path(SYS_ARCHIVE_PATH).uniqid('').'.csv';
		$handle = @fopen($file, 'a+');		
		
		if(is_array($data))
		{
			foreach ($data as $index =&#62; $row)
			{
				$line='';
				if(is_array($row))
				{	
					foreach($row as $value)			
					{				
						$line .= '"'.str_replace('"','""',$value).'";';
					}
				}
				@fwrite($handle, $line."\n");	
			}
		}
		@fclose($handle);				
		DocumentManager :: file_send_for_download($file, true, $filename.'.csv');	
		exit();
	}


El problema es que cuando corro la prueba por navegador este me sale el titulo de la prueba pero lo demas esta en blanco. Ya eh tratado de colocar constructores y obejtos y nada (set up / tear down, ob_start() ...). No se como podria realizar esta prueba. 
Gracias de antemano. Saludos</description>
		<content:encoded><![CDATA[<p>Hola<br />
Tengo un problema con una prueba export, ojala me puedan ayudar.<br />
El codigo del metodo a probar es el siguiente:</p>
<p>function export_table_csv($data, $filename = &#8216;export&#8217;)<br />
	{<br />
		$file = api_get_path(SYS_ARCHIVE_PATH).uniqid(&#8221;).&#8217;.csv&#8217;;<br />
		$handle = @fopen($file, &#8216;a+&#8217;);		</p>
<p>		if(is_array($data))<br />
		{<br />
			foreach ($data as $index =&gt; $row)<br />
			{<br />
				$line=&#8221;;<br />
				if(is_array($row))<br />
				{<br />
					foreach($row as $value)<br />
					{<br />
						$line .= &#8216;&#8221;&#8216;.str_replace(&#8217;&#8221;&#8216;,&#8217;&#8221;"&#8216;,$value).&#8217;&#8221;;&#8217;;<br />
					}<br />
				}<br />
				@fwrite($handle, $line.&#8221;\n&#8221;);<br />
			}<br />
		}<br />
		@fclose($handle);<br />
		DocumentManager :: file_send_for_download($file, true, $filename.&#8217;.csv&#8217;);<br />
		exit();<br />
	}</p>
<p>El problema es que cuando corro la prueba por navegador este me sale el titulo de la prueba pero lo demas esta en blanco. Ya eh tratado de colocar constructores y obejtos y nada (set up / tear down, ob_start() &#8230;). No se como podria realizar esta prueba.<br />
Gracias de antemano. Saludos</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ricardo Rodriguez Salazar</title>
		<link>http://blog.rodrigoarce.com/unit-testing-otra-manera-de-testear/#comment-249</link>
		<dc:creator>Ricardo Rodriguez Salazar</dc:creator>
		<pubDate>Mon, 30 Nov 2015 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://rarce.com.ar/unit-testing-otra-manera-de-testear/#comment-249</guid>
		<description>Hola albo, mira tengo un problema al hacer mis pruebas, hago mis setUp( )  y mis tearDown( ) y aun asi me genera los datos en la base de datos... lo que me produce varios errores al momento de reinstalar mi sistema, dime que podria hacer para q eso no pase, ya que la funcion de mi setUp y mi tearDown es :

 class TestBlog extends UnitTestCase{
	 public $oblog;
	 public function TestBlog(){
	 	$this-&#62;UnitTestCase('Blog Manipulation tests');
	}
	public function setUp(){
 	 	$this-&#62; oblog = new Blog();
	}
	public function tearDown(){
	 	$this-&#62;oblog = null;
	}
Esta bien eso o como puedo hacerlo ????
o que metodo realizo para poder hacer pruebas sin crearlo en la base de datos. ??</description>
		<content:encoded><![CDATA[<p>Hola albo, mira tengo un problema al hacer mis pruebas, hago mis setUp( )  y mis tearDown( ) y aun asi me genera los datos en la base de datos&#8230; lo que me produce varios errores al momento de reinstalar mi sistema, dime que podria hacer para q eso no pase, ya que la funcion de mi setUp y mi tearDown es :</p>
<p> class TestBlog extends UnitTestCase{<br />
	 public $oblog;<br />
	 public function TestBlog(){<br />
	 	$this-&gt;UnitTestCase(&#8217;Blog Manipulation tests&#8217;);<br />
	}<br />
	public function setUp(){<br />
 	 	$this-&gt; oblog = new Blog();<br />
	}<br />
	public function tearDown(){<br />
	 	$this-&gt;oblog = null;<br />
	}<br />
Esta bien eso o como puedo hacerlo ????<br />
o que metodo realizo para poder hacer pruebas sin crearlo en la base de datos. ??</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ricardo Rodriguez Salazar</title>
		<link>http://blog.rodrigoarce.com/unit-testing-otra-manera-de-testear/#comment-248</link>
		<dc:creator>Ricardo Rodriguez Salazar</dc:creator>
		<pubDate>Fri, 30 Nov 2012 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://rarce.com.ar/unit-testing-otra-manera-de-testear/#comment-248</guid>
		<description>gracias amigo ALBO, disculpa si me tomo la molestia de llamarte "amigo", pero en verdad agradezco tu ayuda, me ha sido muy útil, también te agradezco el consejo. Espero poder llegar aprender más cosas, cualquier duda podre contar con tu ayuda?, espero que si.

atte. 
Ricardo Rodriguez Salazar
  _______________________
 /                                        \
&#124; ------ Ing. de Sistemas ------ &#124;  
 \_______________________/</description>
		<content:encoded><![CDATA[<p>gracias amigo ALBO, disculpa si me tomo la molestia de llamarte &#8220;amigo&#8221;, pero en verdad agradezco tu ayuda, me ha sido muy útil, también te agradezco el consejo. Espero poder llegar aprender más cosas, cualquier duda podre contar con tu ayuda?, espero que si.</p>
<p>atte.<br />
Ricardo Rodriguez Salazar<br />
  _______________________<br />
 /                                        \<br />
| &#8212;&#8212; Ing. de Sistemas &#8212;&#8212; |<br />
 \_______________________/</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Albo</title>
		<link>http://blog.rodrigoarce.com/unit-testing-otra-manera-de-testear/#comment-247</link>
		<dc:creator>Albo</dc:creator>
		<pubDate>Wed, 30 Nov 2011 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://rarce.com.ar/unit-testing-otra-manera-de-testear/#comment-247</guid>
		<description>Hola Ricardo, la verdad es que no tengo mas información. Lo único que te queda hacer es probar, probar y probar. No hay trucos, ni atajos. Probá hacer TDD, es la mejor manera de hacer tests efectivos y buen diseño y código.
Y en la presentación mostra todos los puntos buenos de UnitTest como las cosas se prueban una sola vez haciendo mas dificil introducir bugs en código de producción, mejora la interfaz, documenta el uso de las clases que se testean y hacen feliz al programador (cuando ves todos los tests en verdes te pones muy contento :D). Y sus puntos malos, como que llevan trabajo crearlos y mantenerlos y necesitan disciplina (muuuuuuuuucha pero muucha disciplina) por parte del equipo de desarrollo.

Saludos ;)</description>
		<content:encoded><![CDATA[<p>Hola Ricardo, la verdad es que no tengo mas información. Lo único que te queda hacer es probar, probar y probar. No hay trucos, ni atajos. Probá hacer TDD, es la mejor manera de hacer tests efectivos y buen diseño y código.<br />
Y en la presentación mostra todos los puntos buenos de UnitTest como las cosas se prueban una sola vez haciendo mas dificil introducir bugs en código de producción, mejora la interfaz, documenta el uso de las clases que se testean y hacen feliz al programador (cuando ves todos los tests en verdes te pones muy contento :D). Y sus puntos malos, como que llevan trabajo crearlos y mantenerlos y necesitan disciplina (muuuuuuuuucha pero muucha disciplina) por parte del equipo de desarrollo.</p>
<p>Saludos ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ricardo Rodriguez Salazar</title>
		<link>http://blog.rodrigoarce.com/unit-testing-otra-manera-de-testear/#comment-246</link>
		<dc:creator>Ricardo Rodriguez Salazar</dc:creator>
		<pubDate>Tue, 30 Nov 2010 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://rarce.com.ar/unit-testing-otra-manera-de-testear/#comment-246</guid>
		<description>Hola albo sabes me gustaria que me pudieras pasar un poco mas de informacion sobre el simpletest y algun truco que como experimentado (con mas conocimientos) me pudieras dar, tengo una pequeña presentacion sobre pruebas automatizadas usando simpletest y quisiera saber si me puedes guiar en algo mas. 

TE LO AGRADECERÍA INFINITAMENTE.
Saludos</description>
		<content:encoded><![CDATA[<p>Hola albo sabes me gustaria que me pudieras pasar un poco mas de informacion sobre el simpletest y algun truco que como experimentado (con mas conocimientos) me pudieras dar, tengo una pequeña presentacion sobre pruebas automatizadas usando simpletest y quisiera saber si me puedes guiar en algo mas. </p>
<p>TE LO AGRADECERÍA INFINITAMENTE.<br />
Saludos</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Albo</title>
		<link>http://blog.rodrigoarce.com/unit-testing-otra-manera-de-testear/#comment-240</link>
		<dc:creator>Albo</dc:creator>
		<pubDate>Fri, 30 Nov 2018 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://rarce.com.ar/unit-testing-otra-manera-de-testear/#comment-240</guid>
		<description>Hola Ricardo, mira en cualquier caso lo que vos estas testeando es el comportamiento de una función o de un método asi que no importaría si devuelve o no algo. Tendrías tres casos (tanto para función como para método):
1. Devuelve algún valor
2. Tira alguna excepción
3. No devuelve nada

Para los casos 1 y 2 podes trabajar con el valor esperado y conociendo el comportamiento (al estilo caja negra, o sea sin saber que pasa por dentro) en cambio en el tercero, deberías conocer y trabajar con lo que modifica esa función, como el ejemplo que pusiste que modifica el $_SESSION. Ahi deberías hacer un assert para ver si el $_SESSION esta modificado como te corresponde.

En concreto:

$a = 'value';
api_session_register('a');
$this-&gt;assertEqual($_SESSION['a'], $a);

Saludos!</description>
		<content:encoded><![CDATA[<p>Hola Ricardo, mira en cualquier caso lo que vos estas testeando es el comportamiento de una función o de un método asi que no importaría si devuelve o no algo. Tendrías tres casos (tanto para función como para método):<br />
1. Devuelve algún valor<br />
2. Tira alguna excepción<br />
3. No devuelve nada</p>
<p>Para los casos 1 y 2 podes trabajar con el valor esperado y conociendo el comportamiento (al estilo caja negra, o sea sin saber que pasa por dentro) en cambio en el tercero, deberías conocer y trabajar con lo que modifica esa función, como el ejemplo que pusiste que modifica el $_SESSION. Ahi deberías hacer un assert para ver si el $_SESSION esta modificado como te corresponde.</p>
<p>En concreto:</p>
<p>$a = &#8216;value&#8217;;<br />
api_session_register(&#8217;a');<br />
$this->assertEqual($_SESSION[&#8217;a'], $a);</p>
<p>Saludos!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ricardo Rodriguez Salazar</title>
		<link>http://blog.rodrigoarce.com/unit-testing-otra-manera-de-testear/#comment-239</link>
		<dc:creator>Ricardo Rodriguez Salazar</dc:creator>
		<pubDate>Wed, 30 Nov 2011 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://rarce.com.ar/unit-testing-otra-manera-de-testear/#comment-239</guid>
		<description>Hola ALBO, y cuando hay una función que no devuelve nada, osea hay funciones en donde no terminan en 'return'... un caso vendría a ser :

function api_session_register($variable) {
	global $$variable;
	session_register($variable);
	$_SESSION[$variable] = $$variable;
}

en esta no veo que mande un return, que podria esperar yo aca, osea que tendria que retornar o que tendria que assert pondria aca...
ademas hay veces en donde el return no es un valor sino una cadena:

function api_store_result($result) {
	$tab = array ();
	while ($row = Database::fetch_array($result)) {
		$tab[] = $row;
	}
	return $tab;
}


espero tu consejo, gracias</description>
		<content:encoded><![CDATA[<p>Hola ALBO, y cuando hay una función que no devuelve nada, osea hay funciones en donde no terminan en &#8216;return&#8217;&#8230; un caso vendría a ser :</p>
<p>function api_session_register($variable) {<br />
	global $$variable;<br />
	session_register($variable);<br />
	$_SESSION[$variable] = $$variable;<br />
}</p>
<p>en esta no veo que mande un return, que podria esperar yo aca, osea que tendria que retornar o que tendria que assert pondria aca&#8230;<br />
ademas hay veces en donde el return no es un valor sino una cadena:</p>
<p>function api_store_result($result) {<br />
	$tab = array ();<br />
	while ($row = Database::fetch_array($result)) {<br />
		$tab[] = $row;<br />
	}<br />
	return $tab;<br />
}</p>
<p>espero tu consejo, gracias</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Albo</title>
		<link>http://blog.rodrigoarce.com/unit-testing-otra-manera-de-testear/#comment-237</link>
		<dc:creator>Albo</dc:creator>
		<pubDate>Wed, 30 Nov 2016 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://rarce.com.ar/unit-testing-otra-manera-de-testear/#comment-237</guid>
		<description>Hola!

Un void es lo mismo que null, asi que debería ser un assertNull y el string podría ser un assertEqual. Aca te dejó un link a una documentación de SimpleTest http://rodrigoarce.com/simpletest-cheatsheet.html

Saludos</description>
		<content:encoded><![CDATA[<p>Hola!</p>
<p>Un void es lo mismo que null, asi que debería ser un assertNull y el string podría ser un assertEqual. Aca te dejó un link a una documentación de SimpleTest <a href="http://rodrigoarce.com/simpletest-cheatsheet.html" rel="nofollow">http://rodrigoarce.com/simpletest-cheatsheet.html</a></p>
<p>Saludos</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ricardo Rodriguez Salazar</title>
		<link>http://blog.rodrigoarce.com/unit-testing-otra-manera-de-testear/#comment-236</link>
		<dc:creator>Ricardo Rodriguez Salazar</dc:creator>
		<pubDate>Wed, 30 Nov 2016 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://rarce.com.ar/unit-testing-otra-manera-de-testear/#comment-236</guid>
		<description>Hol albo, tengo una pregunta, cuando la funcion return un void o un string que tipo de assert devemos colocarle.. ?¿? o solamente es con el assertTrue y el assertFalse?? a ver si me das un consejito sobre eso, te estaria muy agraecido... n_n</description>
		<content:encoded><![CDATA[<p>Hol albo, tengo una pregunta, cuando la funcion return un void o un string que tipo de assert devemos colocarle.. ?¿? o solamente es con el assertTrue y el assertFalse?? a ver si me das un consejito sobre eso, te estaria muy agraecido&#8230; n_n</p>
]]></content:encoded>
	</item>
</channel>
</rss>

