[MÚSICA] [MÚSICA] Hola, bienvenido. En este video vamos a estar hablando de las pruebas unitarias. Las pruebas unitarias son un mecanismo que nos van a ayudar a depurar nuestras apps. Normalmente cuando estamos desarrollando una aplicación y tenemos una funcionalidad por cumplir pues, a la primera casi nunca sale. Entonces tenemos que verificar pues donde está el problema y tenemos necesidad de tener una formalización o una metodología para encontrar los errores. Las pruebas unitarias es eso, es una metodología de software que nos va a permitir encontrar, lo más pronto posible, en el ciclo de desarrollo de las apps pues donde se encuentra un problema.Y ese problema lo queremos encontrar antes de la integración. Porque si ya tenemos un todo que es una app y esta no funciona va a ser más complicado determinar donde está el problema, si es en una pieza de código o si es en la integración o la comunicación entre las diferentes piezas. Entonces las pruebas unitarias nos van a permitir garantizar la calidad de cada una de las piezas de software o de código. De tal suerte que cuando ya pasemos a la integración o la comunicación entre ellas, o reduzcamos las posibilidades de errores o vamos a saber que entonces no se trata de un error en la pieza, sino más bien en su integración. Muy bien pero ahora ¿Cómo definimos una prueba unitaria? Bueno, primero que nada tenemos que definir lo que es una, la unidad, la unidad puede ser desde un grano muy fino, por ejemplo la verificación de la funcionalidad correcta de un método o bien podemos definirlo como una, a nivel de clase que sería una granularidad media, por ejemplo cuando tenemos un conjunto de métodos o bien para definir el correcto funcionamiento de un paquete de donde sería el más alto nivel, un grano mucho muy grueso. Muy bien, ahora las pruebas unitarias ¿Cómo las vamos a programar? Bueno pues lo que vamos a tener que hacer es vamos a agregar código en nuestra aplicación para verificar el correcto funcionamiento de cada una de estas unidades dependiendo de como lo hubiéramos definido. Si lo definimos a nivel de un método, a nivel de una clase, a nivel de un iii. Entonces tenemos que agregar ese código nuevo. Ese código nuevo lo que va a hacer es crear una prueba, un test. Normalmente se crea de la siguiente manera, nosotros sabemos que a partir de un conjunto de entradas se espera un conjunto de datos de salida muy partícular. Entonces nosotros le decimos a la aplicación o en este caso a la unidad: Si yo te doy estos datos yo debería de responder o debería esperar es la respuesta de estos otros datos. Si yo te cambio los datos a estos otros pues yo debería de esperar esta otra salida distinta. Y entonces hacemos un conjunto de pruebas y podemos verificar a través del conjunto de pruebas unitarias pues donde hay un error. ¿Cuales pruebas fueron exitosas y cuales no fueron exitosas? Pero, ¿Cómo definimos esa función de éxito? ¿Cómo determinamos si algo es exitoso o no es exitoso? Eso lo vamos a hacer a través de algo de las matemáticas llamados aserciones. Una aserción no es otra cosa más que un predicado que se espera que al momento de que sea ejecutado, osea al momento de que llegue el control de flujo a ese punto. La aserción debe ser verdadera para que la prueba sea exitosa. Entonces, nuestras pruebas se van a basar en la definición de aserciones, las cuales deben de ser verdaderas al momento de ejecución. Teniendo ya nuestras aserciones, nuestras pruebas unitarias, nuestro conjunto de pruebas unitarias entonces si podríamos agarrar una app y en vez de ejecutarla o correrla en el simulador lo que vamos a hacer es correrla en modo de prueba o de test. Y entonces el X code nos va a lanzar todo un conjunto de, de palomitas o de taches rojos, visualmente así los vamos a ver, que corresponde a cuales fueron los casos en los cuales exitosamente la aplicación respondió lo que tenía que responder y en cuales no. Esto lo estaremos haciendo en los próximos videos y antes de pasar a ellos, primero una pregunta para consolidar nuestro conocimiento. Espero que tu respuesta haya sido correcta y te espero en el siguiente video para que trabajemos en esto. [MÚSICA]