testing en ios - agilecyl - pucela testing days 2013

Post on 27-Jun-2015

104 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

T E S T I N G E N I O SP 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

Jorge Maroto García.

[xxx]-Developer

+3 años jugando con iOS.

Fanboy.

Hola

D I S C L A I M E R

• Charla introductoria.

• Presentación CDD(Coffee Driven Development).

• Playback.

• Tiempo indeterminado.

D I S C L A I M E R

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

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)

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, ...)

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…)

T E S T L I F E C Y C L E

• +(void)setup

• +(void)tearDown

• -(void)setup

• -(void)tearDown

• -(void)test<whatever>

T D D . C A L C U L AT O R 3 0 0 0 .

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 …

C L A S E S D E U T I L I D A D

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

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

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

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

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

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?

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.

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.

C H A P U ZA

¡ A Ú N Q U E D A E S P E R A N Z A !

https://github.com/jonreid/OCMockito

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

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

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

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

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:

U N PA S I T O M Á S . K I W I .

https://github.com/allending/Kiwi

K I W I : I N S TA L A C I Ó N

K I W I : U S O

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

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

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

U I A U T O M AT I O N

D E M O

http://maroto.me/vu7f

M O L A N D O

http://vimeo.com/39888743

T E S T E A N D O M I E N T R A S D U E R M E S .

T R AV I S

• Gratuito para proyectos open source.

• Integrado con github.

• .travis.yml

https://travis-ci.org/patoroco/JMGFrame

J E N K I N S E S PA R A P O B R E S

O S X S E R V E R

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

GRAC IAStwitter: @patoroco

git.jorgemaroto.es

in.jorgemaroto.es

jorgemaroto.es

top related