Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Testing en iOS - AgileCyL - Pucela Testing Days 2013

324 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
  • Be the first to like this

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

×