Estoy un poco confundido acerca de las pruebas unitarias. Veo el valor en cosas como las pruebas automatizadas. Creo que tal vez un buen ejemplo sea la mejor manera de ayudarme a entender. Digamos que tengo una función de búsqueda binaria Quiero probar la unidad.Explique las pruebas unitarias por favor
Ahora en las pruebas, me gustaría saber cosas como: ¿La búsqueda encuentra el primer elemento, el último elemento y otros elementos? La búsqueda compara correctamente caracteres Unicode. La búsqueda maneja símbolos y otros caracteres "dolorosos". ¿Las pruebas unitarias lo cubrirían o me lo estoy perdiendo? ¿Cómo escribirías pruebas unitarias para mi búsqueda binaria?
function search(collection, value){
var start = 0, end = collection.length - 1, mid;
while (start <= end) {
mid = start + ((end - start)/2);
if (value == collection[mid])
return mid;
if (collection[mid] < value)
end = mid - 1;
else
start = mid + 1;
}
return mid;
}
El código de Psuedo para las pruebas unitarias sería encantador.
Así, podríamos tener:
function testFirst(){
var collection = ['a','b','c','x','y','z'],first = 'a', findex = 0;
assert(seach(collection,first),findex);
}
function testLast(){
var collection = ['a','b','c','x','y','z'], last = 'z', lindex = 5;
assert(seach(collection,last),lindex);
}