Testing en iOS - AgileCyL - Pucela Testing Days 2013

237 views
169 views

Published on

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

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
237
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Testing en iOS - AgileCyL - Pucela Testing Days 2013

  1. 1. PUCELA TESTING DAYS TESTING EN IOS J O R G E M A R O T O G A R C Í A ( @ PA T O R O C O ) AGILECYL - 30 NOVIEMBRE 2013
  2. 2. Hola  Jorge Maroto García.  [xxx]-Developer  +3 años jugando con iOS.  Fanboy.
  3. 3. DISCLAIMER • Charla introductoria. • Presentación CDD
 (Coffee Driven Development). • Playback. • Tiempo indeterminado.
  4. 4. DISCLAIMER
  5. 5. XCODE. EL IDE.
  6. 6. FRAMEWORKS DE TESTING • OCUnit (< iOS7) • XCTest (iOS7) • GHUnit (https://github.com/gh-unit/gh-unit)
  7. 7. OCUNIT 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, ...)
  8. 8. XCTEST 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…)
  9. 9. TEST LIFECYCLE • +(void)setup • +(void)tearDown • -(void)setup • -(void)tearDown • -(void)test<whatever>
  10. 10. T D D . C A L C U L AT O R 3 0 0 0 .
  11. 11. M I E N T R A S TA N T O E N E L MUNDO REAL…
  12. 12. CLASES DE UTILIDAD
  13. 13. EJEMPLO REAL: MAPEAR JSON
  14. 14. EJEMPLO REAL: MAPEAR JSON
  15. 15. EJEMPLO REAL: TORPEZA
  16. 16. EJEMPLO REAL: TORPEZA
  17. 17. EJEMPLO REAL: TORPEZA
  18. 18. EJEMPLO REAL: SINGLETON • API en singleton. • I de FIRST. • ¿Cómo inyecto la API en un test?
  19. 19. EJEMPLO REAL: SINGLETON • 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.
  20. 20. EJEMPLO REAL: SINGLETON • 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.
  21. 21. C H A P U ZA
  22. 22. ¡AÚN QUEDA ESPERANZA! https://github.com/jonreid/OCMockito
  23. 23. 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
  24. 24. O C M O C K I T O : I N S TA L A C I Ó N
  25. 25. OCMOCKITO: EJEMPLOS
  26. 26. OCMOCKITO: EJEMPLOS
  27. 27. 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:
  28. 28. U N PA S I T O M Á S . K I W I . https://github.com/allending/Kiwi
  29. 29. K I W I : I N S TA L A C I Ó N
  30. 30. KIWI: USO
  31. 31. KIWI: EJEMPLOS
  32. 32. KIWI: EJEMPLOS
  33. 33. KIWI: EJEMPLOS
  34. 34. U I A U T O M AT I O N
  35. 35. DEMO http://maroto.me/vu7f
  36. 36. MOLANDO http://vimeo.com/39888743
  37. 37. TESTEANDO MIENTRAS DUERMES.
  38. 38. T R AV I S • Gratuito para proyectos open source. • Integrado con github. • .travis.yml
  39. 39. https://travis-ci.org/patoroco/JMGFrame
  40. 40. J E N K I N S E S PA R A P O B R E S
  41. 41. OS X SERVER
  42. 42. Tutorial para montar bots: http://maroto.me/vu7h
  43. 43. GRACIAS twitter: @patoroco git.jorgemaroto.es in.jorgemaroto.es jorgemaroto.es

×