1. 14 - TESTEO AUTOMÁTICO
Curso de desarrollo de aplicaciones móviles para iPhone y iPad
endika.gutierrez@urbegi.com
alex.rayon@urbegi.com
Urbegi Learning
Contents
4. INTRODUCCIÓN
• El
testeo automático es una filosofia para reducir errores de
programación
• Sebasa en programar diversos casos o teses que deben
producir un resultado esperado
5. INTRODUCCIÓN
• Porlo tanto se interpreta que todo funciona correctamente
cuando todos los teses han producido un resultado esperado
• Enel caso de que alguna de las pruebas produzca un
resultado inesperado es que hay algún problema
6. INTRODUCCIÓN
• No se debe confundir resultado inesperado con error, ya que
en un test unitario un error puede ser el resultado esperado
• Ejemplo:
NSArray *array = [NSArray array]; // Array vacio
[array objectAtIndex:2]; // Esto deberá lanzar una excepción
8. TESTEO
AUTOMÁTICO
• Existen multitud de frameworks para el testeo automatico en
iOS
• Se incluye uno por defecto llamado SenTestingKit
• Cuando creamos un proyecto podemos decir que
utilizaremos tests unitarios
9. TESTEO
AUTOMÁTICO
• Existen multitud de frameworks para el testeo automatico en
iOS
• Se incluye uno por defecto llamado SenTestingKit
• Cuando creamos un proyecto podemos decir que
utilizaremos tests unitarios
11. TESTEO
AUTOMÁTICO
• Launidad de prueba es el TestCase y cada uno de ellos será
representada en una clase que hereda de SenTestCase
• Este TestCase puede estar destinado a probar una o varias
clases
• Veamos el aspecto del testCase por defecto
12. TESTEO
AUTOMÁTICO
@implementation testTests
- (void)setUp
{
[super setUp];
// Preparación del test
}
- (void)tearDown
{
// Restauración de los cambios del test
[super tearDown];
}
- (void)testExample
{
STFail(@"Unit tests are not implemented yet in testTests");
}
@end
13. TESTEO
AUTOMÁTICO
• Podemos ir añadiendo teses creando funciones con la forma:
- (void)testNombreDelTest
• Es
decir, mientras comiencen por test... serán ejecutados de
manera automática después del código de inicialización
14. TESTEO
AUTOMÁTICO
• Dentro
de cada una de estas funciones podremos hacer
numerosas pruebas
• Las pruebas comienzan por STAssert...
• Podemos que funciones no lancen excepciones, que las
lancen, que retornen un determinado valor, etc
15. TESTEO
AUTOMÁTICO
• El ejemplo anterior quedaría así:
- (void)testArray
{
NSArray *array = [NSArray array];
STAssertThrows([array objectAtIndex:2], @"Indice fuera de rango debe lanzar
excepción");
}
16. TESTEO
AUTOMÁTICO
• Un ejemplo más complejo podría ser:
- (void)testArray
{
NSArray *array = [NSArray array];
STAssertThrows([array objectAtIndex:2], @"Indice fuera de rango debe lanzar
excepción");
STAssertEquals(array.count, 0, @"La longitud del array es 0");
array = [NSArray arrayWithObjects:@"Uno", @"Dos", nil];
STAssertEqualObjects([array lastObject], @"Dos", @"Orden de los arrays correcto");
STAssertNotNil([array objectAtIndex:0], @"No puede devolver nil");
}