SlideShare uma empresa Scribd logo
1 de 17
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
CONTENIDO



• Introducción

• Testeo Automático
CONTENIDO



   • Introducción

• Testeo Automático
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
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
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
CONTENIDO



• Introducción

   • Testeo Automático
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
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
TESTEO
AUTOMÁTICO
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
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
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
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
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");
}
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");
}
FIN

Mais conteúdo relacionado

Mais procurados

Mais procurados (9)

Testing 101 con Arquillian
Testing 101 con ArquillianTesting 101 con Arquillian
Testing 101 con Arquillian
 
Programación Reactiva con RxJava
Programación Reactiva con RxJavaProgramación Reactiva con RxJava
Programación Reactiva con RxJava
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the future
 
E2E test con Cypress
E2E test con CypressE2E test con Cypress
E2E test con Cypress
 
Statement
StatementStatement
Statement
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma Digital
 
Diapositivas grupo 1 ESTRUCTURAS
Diapositivas grupo 1 ESTRUCTURASDiapositivas grupo 1 ESTRUCTURAS
Diapositivas grupo 1 ESTRUCTURAS
 
Hibernate - JPA @luce
Hibernate - JPA @luceHibernate - JPA @luce
Hibernate - JPA @luce
 
Estructuras secuencial
Estructuras secuencialEstructuras secuencial
Estructuras secuencial
 

Destaque (14)

Ios.s4
Ios.s4Ios.s4
Ios.s4
 
Ios.s7
Ios.s7Ios.s7
Ios.s7
 
Ios.s10
Ios.s10Ios.s10
Ios.s10
 
Ios.s6
Ios.s6Ios.s6
Ios.s6
 
Ios.s15
Ios.s15Ios.s15
Ios.s15
 
Ios.s8
Ios.s8Ios.s8
Ios.s8
 
Ios.s5
Ios.s5Ios.s5
Ios.s5
 
Ios.s1
Ios.s1Ios.s1
Ios.s1
 
Proyecto LISFAB y Emprendimiento 4.0
Proyecto LISFAB y Emprendimiento 4.0Proyecto LISFAB y Emprendimiento 4.0
Proyecto LISFAB y Emprendimiento 4.0
 
Ios.s12
Ios.s12Ios.s12
Ios.s12
 
Ios.s9
Ios.s9Ios.s9
Ios.s9
 
Ios.s13
Ios.s13Ios.s13
Ios.s13
 
Ios.s3
Ios.s3Ios.s3
Ios.s3
 
Ios.s2
Ios.s2Ios.s2
Ios.s2
 

Semelhante a Ios.s14

Introducción a Unit Testing y TDD
Introducción a Unit Testing y TDDIntroducción a Unit Testing y TDD
Introducción a Unit Testing y TDDFernando Perez
 
Artalde Tdd intro
Artalde Tdd introArtalde Tdd intro
Artalde Tdd introfperezplain
 
Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013dayaorte
 
Pruebas Automatizadas
Pruebas AutomatizadasPruebas Automatizadas
Pruebas AutomatizadasAngel Nuñez
 
Artesania de Software y TDD
Artesania de Software y TDDArtesania de Software y TDD
Artesania de Software y TDDAlfredo Chavez
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NETAngel Nuñez
 
Ingenieria de sw Junit
Ingenieria de sw JunitIngenieria de sw Junit
Ingenieria de sw Junitpattyand89
 
Junit y Jmock
Junit y JmockJunit y Jmock
Junit y Jmockkaolong
 
Tu primer script en Katalon - Paso a Paso
Tu primer script en Katalon - Paso a PasoTu primer script en Katalon - Paso a Paso
Tu primer script en Katalon - Paso a PasoArgentesting
 
Unit Testing - Trovit
Unit Testing - TrovitUnit Testing - Trovit
Unit Testing - TrovitJordi Gerona
 
Artesania de Software y TDD
Artesania de Software y TDDArtesania de Software y TDD
Artesania de Software y TDDAlfredo Chavez
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishJordi Llonch
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishJordi Llonch
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishAkamon Engineering
 
Unit Testing - GTUG
Unit Testing - GTUGUnit Testing - GTUG
Unit Testing - GTUGJordi Gerona
 

Semelhante a Ios.s14 (20)

Introducción a Unit Testing y TDD
Introducción a Unit Testing y TDDIntroducción a Unit Testing y TDD
Introducción a Unit Testing y TDD
 
Artalde Tdd intro
Artalde Tdd introArtalde Tdd intro
Artalde Tdd intro
 
Introducción a tdd
Introducción a tddIntroducción a tdd
Introducción a tdd
 
Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013
 
Automatizacion de Pruebas
Automatizacion de PruebasAutomatizacion de Pruebas
Automatizacion de Pruebas
 
Qunit CookBook español
Qunit CookBook españolQunit CookBook español
Qunit CookBook español
 
Pruebas Automatizadas
Pruebas AutomatizadasPruebas Automatizadas
Pruebas Automatizadas
 
Artesania de Software y TDD
Artesania de Software y TDDArtesania de Software y TDD
Artesania de Software y TDD
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NET
 
Ingenieria de sw Junit
Ingenieria de sw JunitIngenieria de sw Junit
Ingenieria de sw Junit
 
Testeo unitario
Testeo unitarioTesteo unitario
Testeo unitario
 
Junit y Jmock
Junit y JmockJunit y Jmock
Junit y Jmock
 
Best Practices
Best PracticesBest Practices
Best Practices
 
Tu primer script en Katalon - Paso a Paso
Tu primer script en Katalon - Paso a PasoTu primer script en Katalon - Paso a Paso
Tu primer script en Katalon - Paso a Paso
 
Unit Testing - Trovit
Unit Testing - TrovitUnit Testing - Trovit
Unit Testing - Trovit
 
Artesania de Software y TDD
Artesania de Software y TDDArtesania de Software y TDD
Artesania de Software y TDD
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
 
Unit Testing - GTUG
Unit Testing - GTUGUnit Testing - GTUG
Unit Testing - GTUG
 

Ios.s14

  • 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
  • 3. CONTENIDO • Introducción • Testeo Automático
  • 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
  • 7. CONTENIDO • Introducción • Testeo Automático
  • 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"); }
  • 17. FIN

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n