Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Como implementar códigos a QUnit

Estas en el tema de Como implementar códigos a QUnit en el foro de Frameworks JS en Foros del Web. Hola buenas tardes, No estoy seguro si este tema va aquí, pero como es de javascript ( JQuery ), tal vez no me haya equivocado ...
  #1 (permalink)  
Antiguo 31/01/2012, 18:15
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Como implementar códigos a QUnit

Hola buenas tardes,

No estoy seguro si este tema va aquí, pero como es de javascript (JQuery), tal vez no me haya equivocado :)

Estoy empezando con pruebas de utilidad y he estado analizando el código de QUnit, pero en base a los ejemplos que he visto ( 2 + 2 = 1 fail!!, = 2 success!!) del tutorial de QUnit, tengo la siguiente duda:

Por ejemplo, si yo tengo el código de QUnit en HTML:

Código HTML:
<!DOCTYPE html>  
<html>  
<head>  
    <title>QUnit Test Suite</title>  
    <link rel="stylesheet" href="http://code.jquery.com/qunit/git/qunit.css" type="text/css" media="screen">
    <script type="text/javascript" src="http://github.com/jquery/qunit/raw/master/qunit/qunit.js"></script>  
    <!-- Your project file goes here -->  
    <script type="text/javascript" src="myProject.js"></script>  
    <!-- Your tests file goes here -->  
    <script type="text/javascript" src="myTests.js"></script>  
</head>  
<body>  
    <h1 id="qunit-header">QUnit Test Suite</h1>  
    <h2 id="qunit-banner"></h2>  
    <div id="qunit-testrunner-toolbar"></div>  
    <h2 id="qunit-userAgent"></h2>  
    <ol id="qunit-tests"></ol>  
</body>  
</html> 
en las pruebas se ha usado el ejemplo siguiente, guardado en myProject.js:

Código:
// Let's test this function  
function isEven(val) {  
    return val % 2 === 0;  
}  
  
test('isEven()', function() { 
    ok(isEven(0), 'Zero is an even number'); 
    ok(isEven(2), 'So is two'); 
    ok(isEven(-4), 'So is negative four'); 
    ok(!isEven(1), 'One is not an even number'); 
    ok(!isEven(-7), 'Neither does negative seven'); 
 
    // Fails 
    ok(isEven(3), 'Three is an even number');  
})
pero, si yo tengo el siguiente código javascript:

Código:
function getArticulos(art_id){
	/*Se hace la conexión */
	
	$.ajax({
		type: "post",
		url: "../com/datos.cfc", /* URL del archivo .cfc con funciones*/
		data:'method=getArticulos&id_articulos=' + art_id, 
		dataType: "json",
		success: function(resultado){
			var jresultado = JSON.stringify(resultado);
		   	resultado = eval(JSON.parse(jresultado));	
			
		   /* Se empuezan a crear los objetos */
		   	var columna = new Object();
		   		for(var i = 0; i < resultado.COLUMNS.length; i++) {
				columna[resultado.COLUMNS[i]] = i;		
			}
			var id_art = resultado.DATA[0][columna["ATX_ARTICULO"]];
			var descript = resultado.DATA[0][columna["ART_DESCRIP"]];
			var imagen = resultado.DATA[0][columna["IMAGEN"]];
										
		},
		error: function(xhr, textStatus, errorThrown){ //Si hay un error 
		}
	});
}
¿Cómo podría empezar a "testearlo" con QUnit? Es decir, no he trabajado con pruebas unitarias nunca, y es la primera vez que las usaría, ¿cómo tengo que llamar este último código para empezar a hacer las pruebas? En base a esto podría empezar a entender más el funcionamiento de QUnit.

De antemano, les agradezco sus comentarios.
  #2 (permalink)  
Antiguo 01/02/2012, 12:39
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Respuesta: Como implementar códigos a QUnit

básicamente es pasarle diferentes tipos de parametros a la función para ver si falla o no, deberías hacerlo asi:

Código Javascript:
Ver original
  1. test('isEven()', function() {
  2.     ok(getArticulos(0), 'metemos un 0');
  3.     ok(getArticulos(-1), 'metemos un valor negativo');
  4.     ok(getArticulos(1), 'metemos un valor positivo');
  5.     ok(getArticulos([]), 'metemos un array vacio');
  6.     ok(getArticulos({}), 'metemos un objeto vacio');
  7.     ok(getArticulos(function(){}), 'metemos un valor');
  8. })

con esto haces tus pruebas y ves lo que falla, lo mejor suele ser hacer una comprobación de los parámetros de entrada, por ejemplo si la funcion espera como parametro un número pues si ese parámetro no es un número pues no haces nada, lo que no hay que hacer es pre-suponer que nos va a llegar un número, no se si me he explicado.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 01/02/2012, 14:35
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Como implementar códigos a QUnit

Es decir, los valores que metiste (0,-1,1,[],()), yo se los asigno, y si me arrojará, por citar un ejemplo, como Ok, el valor de [] y yo no debería esperar ese valor... sería un error, no?

En pocas palabras, ¿yo le doy valores para ir identificando el funcionamiento del código?

Saludos!
  #4 (permalink)  
Antiguo 01/02/2012, 14:41
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Respuesta: Como implementar códigos a QUnit

eso es, lo que tienes que hacer es introducir cualquier tipo de parametro como variable y ver que ocurre para prevenir fallos, en algunos te fallara el javascript en otras no hara nada, tienes que contemplar todo lo que pueda pasar, por muy imposible que parezca.

Como ya te he dicho antes lo mejor es comprobar las variables de entrada, si no se ajustan al programa le muestras un error, por ejemplo si la entrada sólo puede ser numérica, si el usuario o algun BOT o lo que sea mete un string, pues le dices "el parametro introducido no es válido".

Puede ser un autentico coñazo pero es lo que tiene hacer test unitarios, que te das cuenta de que de comprobaciones hay que hacer.

Un saludo y suerte.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #5 (permalink)  
Antiguo 01/02/2012, 16:26
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Como implementar códigos a QUnit

Entendido!! Comenzaré a hacer mis análisis de lo que que hay que comprobar :)

Gracias!!

Etiquetas: ajax, funcion, html, implementar, js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:53.