Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Testing en iOS - AgileCyL - Pucela Testing Days 2013

Jorge Maroto
November 30, 2013

Testing en iOS - AgileCyL - Pucela Testing Days 2013

Esta charla forma parte de un ciclo sobre testing que se dio en AgileCyL (http://agilecyl.org/2013/11/27/pucelatestingdays-testing-en-ios-y-testing-en-android/).

Se puede ver la presentación (más bien escuchar, porque el video es pésimo) en Youtube: http://youtu.be/6ruv6vMUTtE

Jorge Maroto

November 30, 2013
Tweet

More Decks by Jorge Maroto

Other Decks in Programming

Transcript

  1. T E S T I N G E N I

    O S P U C E L A T E S T I N G D A Y S J O R G E M A R O T O G A R C Í A ( @ PA T O R O C O ) A G I L E C Y L - 3 0 N O V I E M B R E 2 0 1 3
  2. D I S C L A I M E R

    • Charla introductoria. • Presentación CDD
 (Coffee Driven Development). • Playback. • Tiempo indeterminado.
  3. F R A M E W O R K S

    D E T E S T I N G • OCUnit (< iOS7) • XCTest (iOS7) • GHUnit (https://github.com/gh-unit/gh-unit)
  4. O C U N I T STAssertTrue(expression, msg, ...) STAssertEqualObjects(a1,

    a2, msg, ...) STAssertEquals(a1, a2, msg, ...) STAssertEqualsWithAccuracy(a1, a2, msg, ...) STFail(msg, ...) STAssertNil(a1, msg, ...) STAssertNotNil(a1, msg, ...) STAssertTrueNoThrow(expression, msg, ...) STAssertFalse(expression, msg, ...) STAssertFalseNoThrow(expression, msg, ...) STAssertThrows(expression, msg, ...) STAssertThrowsSpecific(expression, exception, msg, ...) STAssertThrowsSpecificNamed(expression, exception, name, msg, ...) STAssertNoThrow(expression, msg, ...) STAssertNoThrowSpecific(expression, exception, msg, ...) STAssertNoThrowSpecificNamed(expression, exception, msg, ...)
  5. X C T E S T XCTFail (format…) XCTAssertNil (a1,

    format…) XCTAssertNotNil (a1, format…) XCTAssert (a1, format…) XCTAssertTrue (a1, format…) XCTAssertFalse (a1, format…) XCTAssertEqualObjects (a1, a2, format…) XCTAssertEquals (a1, a2, format…) XCTAssertEqualsWithAccuracy (a1, a2, accuracy, format…) XCTAssertThrows (expression, format…) XCTAssertThrowsSpecific (expression, specificException, format…) XCTAssertThrowsSpecificNamed (expression, specificException, exceptionName, format…) XCTAssertNoThrow (expression, format…) XCTAssertNoThrowSpecific (expression, specificException, format…) XCTAssertNoThrowSpecificNamed (expression, specificException, exceptionName, format…)
  6. T E S T L I F E C Y

    C L E • +(void)setup • +(void)tearDown • -(void)setup • -(void)tearDown • -(void)test<whatever>
  7. T D D . C A L C U L

    AT O R 3 0 0 0 .
  8. M I E N T R A S TA N

    T O E N E L M U N D O R E A L …
  9. C L A S E S D E U T

    I L I D A D
  10. E J E M P L O R E A

    L : M A P E A R J S O N
  11. E J E M P L O R E A

    L : M A P E A R J S O N
  12. E J E M P L O R E A

    L : T O R P E Z A
  13. E J E M P L O R E A

    L : T O R P E Z A
  14. E J E M P L O R E A

    L : T O R P E Z A
  15. E J E M P L O R E A

    L : S I N G L E T O N • API en singleton. • I de FIRST. • ¿Cómo inyecto la API en un test?
  16. E J E M P L O R E A

    L : S I N G L E T O N • API en singleton. • I de FIRST. • ¿Cómo inyecto la API en un test? • Ideaca: usar @property para apuntar a la API y así puedo ‘allocar’ un singleton distinto en cada test.
  17. E J E M P L O R E A

    L : S I N G L E T O N • API en singleton. • I de FIRST. • ¿Cómo inyecto la API en un test? • Ideaca: usar @property para apuntar a la API y así puedo ‘allocar’ un singleton distinto en cada test. • Consecuencias: subclasear para testing.
  18. ¡ A Ú N Q U E D A E

    S P E R A N Z A ! https://github.com/jonreid/OCMockito
  19. O C M O C K I T O :

    I N S TA L A C I Ó N *Presentación CocoaPods: http://maroto.me/ttzc
  20. O C M O C K I T O :

    I N S TA L A C I Ó N
  21. O C M O C K I T O :

    E J E M P L O S
  22. O C M O C K I T O :

    E J E M P L O S
  23. O C H A M C R E S T:

    M AT C H E R S https://github.com/hamcrest/OCHamcrest Ejemplo de matchers:
  24. U N PA S I T O M Á S

    . K I W I . https://github.com/allending/Kiwi
  25. T E S T E A N D O M

    I E N T R A S D U E R M E S .
  26. T R AV I S • Gratuito para proyectos open

    source. • Integrado con github. • .travis.yml
  27. J E N K I N S E S PA

    R A P O B R E S
  28. G R A C I A S twitter: @patoroco git.jorgemaroto.es

    in.jorgemaroto.es jorgemaroto.es