41
Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción a XCode y Objective-C Sesión 5: Depuración y pruebas

Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IA

Introducción a XCode y Objective-C

Sesión 5: Depuración y pruebas

Page 2: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Índice de contenidos• Trazas de seguimiento• NSLogs• Asserts

• El depurador de XCode• Breakpoints: Uso y tipos• Acciones disponibles en depuración

• Objetos Zombie• ¿Qué son y para qué sirven?• Configuración en XCode

• Instruments• Activar Instruments• Encontrando fugas de memoria

• Pruebas de unidad

2

Page 3: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Trazas de segumiento• Trazas de seguimiento• NSLogs• Asserts

3

Page 4: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

NSLogs (1)• Framework: FoundationKit• Equivalente a: fprintf(...).• Modificar el código fuente• Mostrar en consola el estado de variables• Parámetro NSString• Uso de especificadores de formato:• %@: Cadenas de texto y objetos.• %i: Enteros (integer)• %d: Decimal (float)• %.02f: Número con dos decimales• %ld: Entero Long• %p: Puntero, referencia a un objeto.• Otros...

4

Page 5: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

NSLogs (2)• Especificador de texto para mostrar la descripción de un objeto:

• Mostrará la información más relevante del elemento window.• Otros objetos:

NSStringNSDictionary...

5

NSLog(@"Descripción del objeto window: %@", self.window);

Page 6: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Trazas de seguimiento• Trazas de siguimiento• NSLogs• Asserts

6

Page 7: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Asserts (1)• Usado por los programadores para comprobar partes del

código:• Valores de variables.• Condiciones.

• Usar sólo durante el desarrollo.• Si falla el Assert lanzará una excepción.• Objective-C: NSAssert y NSAssert2.• NSAssert es equivalente a assert• NSAssert2 permite más parámetros en la descripción.

7

Page 8: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

// Uso de la macro assert()assert(valor < maximoValor && @"El valor es demasiado grande!"); // Uso de NSAssert2NSAssert2(valor < maximoValor, @"El valor %i es demasiado grande (max.:%i)!", valor, maximoValor);

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Asserts (2)• Uso de NSAsserts:

8

Page 9: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Asserts (3)• Desactivar los asserts para compilar el proyecto para

distribución (release).• Directiva NS_BLOCK_ASSERTIONS

9

Page 10: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

El depurador de XCode• El depurador de XCode• Breakpoints: Uso y tipos• Acciones disponibles en depuración

10

Page 11: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Breakpoints• Internamente: GDB, el depurador de GNU. Aunque podemos

cambiarlo a LLDB.• Podremos usar la línea de comandos: http://www.gnu.org/s/gdb/documentation/

• Sistema mejorado con XCode 4.• Ejecutar el proyecto en modo depuración (debug).• Activar breakpoints desde XCode

11

Page 12: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Breakpoints: creación en XCode (1)• Pulsar el número de línea en donde queremos activarlo.• Estado de un breakpoint:• Activado: Color azul.• Desactivado: Color azul semitransparente.

• Navegador de breakpoints:

12

Page 13: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Breakpoints: creación en XCode (2)• Breakpoints condicionales:• Opción de activar un breakpoint si cumple una condición:

ctrl + click en un breakpoint.

13

Page 14: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Breakpoints: Tipos• Además del breakpoint común existen dos tipos más:• Exception Breakpoint• Symbolic Breakpoint.

• Se crean desde el botón (+) de la parte inferior del navegador de breakpoints.

14

Page 15: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Exception Breakpoint• Se ejecuta cada vez que salta una excepción en la ejecución.• Detiene la ejecución en el bloque catch o en throw.• Acción personalizable (log o sonido).• Opción de continuar la ejecución.

15

Page 16: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Symbolic Breakpoint• Se ejecuta cuando una función o método específico se ejecuta.• El campo “símbolo” puede ser: • El nombre de un método: pathsMatchingExtensions:• El método de una clase: [SKTLine drawHandlesInView]• Un nombre de una función: _objc_msgForward

• Acción personalizable (log o sonido).• Opción de continuar la ejecución.

16

Page 17: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

El depurador de XCode• El depurador de XCode• Breakpoints: Uso y tipos• Acciones disponibles en depuración

17

Page 18: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Acciones disponibles en depuración (1)• Analizar los valores de las variables.• Crear un watchpoint: breakpoint en variable. La ejecución se

detendrá cuando el valor de la variable cambie.• Usar la línea de comandos. Comandos de GDB.• Editar el listado de breakpoints. Podemos desactivar, activar,

borrar breakpoints durante la depuración.• Cambiar la localización de la aplicación (simular GPS).

18

Page 19: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Acciones disponibles en depuración (2)• Continuar hasta la siguiente línea in entrar en funciones (step

over, n)• Continuar hasta el siguiente breakpoint (continue, c)• Continuar hasta la siguiente línea entrando en las funciones

(step into, s)• Empezar de nuevo o abortar la ejecución (finish, f)

19

Page 20: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Objetos Zombie• Objetos Zombie• ¿Qué son y para qué sirven?• Configuración en XCode

20

Page 21: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

¿Qué son y para qué sirven? (1)• Parámetro de compilación.

• Proporciona más detalles cuando se producen excepciones relacionadas con accesos a memoria.• ¿Os suena EXC_BAD_ACCESS?

• Nombre parámetro: NSZombieEnabled.

21

Page 22: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

¿Qué son y para qué sirven? (2)• Ejemplo:• Liberamos de memoria una variable que ya hemos liberado

anteriormente.• Sin usar objetos Zombie:

• Usando objetos Zombie:

22

Page 23: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Objetos Zombie• Objetos Zombie• ¿Qué son y para qué sirven?• Configuración en XCode

23

Page 24: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Configuración en XCode• Activar: Edit Scheme > Diagnostics > Enable Zombie Objects.

24

Page 25: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Instruments• Instruments• Activar Instruments• Encontrando fugas de memoria

25

Page 26: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Activar Instruments (1)• Aplicación adicional al depurador de XCode. Se instala junto

con XCode.• Varias herramientas disponibles divididas por el componente del

sistema a analizar: Memoria, CPU y Sistema de ficheros.

• Objetivo: analizar el uso de la memoria y comprobar si existen fugas de memoria (memory leaks).

26

Page 27: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Activar Instruments (2)

27

Page 28: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Activar Instruments (3)• Menú principal de XCode: Product > Profile.• Podemos analizar la ejecución del simulador o del dispositivo.• Para analizar las fugas de memoria seleccionamos las

herramientas Allocations y Leaks.• Allocations -> Analizar el uso de la memoria.• Leaks -> Analizar fugas de memoria.

28

Page 29: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Herramienta Allocations• Allocations:• En azul las reservas de memoria que se van produciendo.• Listado de objetos que van reservando memoria ordenados por la

cantidad que reservan.

29

Page 30: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Herramienta Leaks• Leaks:• En rojo las fugas de memoria (objetos que han reservado

memoria y la han liberado).• Si seleccionamos una fuga de memoria accederemos al código

fuente en donde se genera esta fuga.• Podemos corregir las fugas de memoria desde Instruments

cambiando el código fuente.

30

Page 31: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Encontrando fugas de memoria• Instruments• Activar Instruments• Encontrando fugas de memoria

31

Page 32: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Encontrando fugas de memoria (1)• Pantalla principal de Leaks en funcionamiento:

32

Page 33: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Encontrando fugas de memoria (2)• Configuración de detección de Leaks cada cierto tiempo:

33

Page 34: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Encontrando fugas de memoria (3)• Análisis de la traza de una fuga de memoria:

34

Page 35: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Pruebas de unidad• Pruebas de unidad

35

Page 36: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Pruebas de unidad• Objetivo: probar el funcionamiento de un módulo o un método

concreto y reducir el número de fallos.• XCode integra la generación de tests de unidad.• Un grupo de tests de unidad (test bundle) contiene varios tests.• Un test bundle prueba una funcionalidad de la aplicación.• Framework: SenTestingKit

36

Page 37: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Creando tests de unidad (1)• Al crear un proyecto en XCode podemos incluir tests de unidad.

37

Page 38: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Creando tests de unidad (2)• Target específico en XCode:

38

Page 39: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Creando tests de unidad (3)• Macros disponibles en el framework SenTestingKit• Método setUp: crear las variables y configurarlas.• Método tearDown: liberar los objetos de memoria.

39

- (void)testMiTestDePrueba { ... // Configuración inicial (setup) ST... // Asserts ... ! // Liberación de memoria y variables auxiliares}

- (void)setUp { objeto_test = [[[MiClase alloc] init] retain]; STAssertNotNil(objeto_test, @"No se puede crear un objeto de la clase MiClase");} - (void)tearDown { [objeto_test release];}

Page 40: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

Algunas macros...• STFail: Falla el test.• STAssertEqualObjects: Falla cuando dos objetos no son

iguales.• STAssertEquals: Falla cuando dos valores no son iguales.• STAssertNil: Falla cuando la expresión no es nil.• STAssertNotNil: Falla cuando la expresión es nil.• STAssertTrue: Falla cuando la expresión no es true.• STAssertFalse: Falla cuando la expresión no es false.• STAssertThrows: Falla cuando la expresión no lanza una

excepción.• etc...

40

https://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/UnitTesting/AB-Unit-Test_Result_Macro_Reference/result_macro_reference.html

Page 41: Introducción a XCode y Objective-C · Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Introducción

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Introducción a XCode y Objective-C

© 2012-2013 Depto. Ciencia de la Computación e IA Depuración y pruebas

• ¿Preguntas...?

41