Testing en iOS - AgileCyL - Pucela Testing Days 2013

D76011ac5b647badc5fe06c7e39beac0?s=47 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

D76011ac5b647badc5fe06c7e39beac0?s=128

Jorge Maroto

November 30, 2013
Tweet

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.  Jorge Maroto García.  [xxx]-Developer  +3 años jugando

    con iOS.  Fanboy. Hola
  3. D I S C L A I M E R

    • Charla introductoria. • Presentación CDD
 (Coffee Driven Development). • Playback. • Tiempo indeterminado.
  4. D I S C L A I M E R

  5. X C O D E . E L I D

    E .
  6. None
  7. None
  8. None
  9. 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)
  10. 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, ...)
  11. 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…)
  12. None
  13. None
  14. None
  15. T E S T L I F E C Y

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

    AT O R 3 0 0 0 .
  18. None
  19. None
  20. None
  21. None
  22. None
  23. None
  24. None
  25. None
  26. None
  27. None
  28. 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 …
  29. C L A S E S D E U T

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

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

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

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

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

    L : T O R P E Z A
  35. 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?
  36. 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.
  37. 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.
  38. None
  39. None
  40. C H A P U ZA

  41. ¡ A Ú N Q U E D A E

    S P E R A N Z A ! https://github.com/jonreid/OCMockito
  42. 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
  43. O C M O C K I T O :

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

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

    E J E M P L O S
  46. 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:
  47. U N PA S I T O M Á S

    . K I W I . https://github.com/allending/Kiwi
  48. K I W I : I N S TA L

    A C I Ó N
  49. K I W I : U S O

  50. K I W I : E J E M P

    L O S
  51. K I W I : E J E M P

    L O S
  52. K I W I : E J E M P

    L O S
  53. None
  54. U I A U T O M AT I O

    N
  55. None
  56. D E M O http://maroto.me/vu7f

  57. M O L A N D O http://vimeo.com/39888743

  58. T E S T E A N D O M

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

    source. • Integrado con github. • .travis.yml
  60. None
  61. https://travis-ci.org/patoroco/JMGFrame

  62. None
  63. J E N K I N S E S PA

    R A P O B R E S
  64. O S X S E R V E R

  65. Tutorial para montar bots: http://maroto.me/vu7h

  66. G R A C I A S twitter: @patoroco git.jorgemaroto.es

    in.jorgemaroto.es jorgemaroto.es