SlideShare a Scribd company logo
1 of 17
#IWT2 DOJO US
Introducción a
pruebas en Android
www.iwt2.org
formacion@iwt2.org
2
• Conocer los aspectos
básicos para escribir
pruebas en Android
• Aprender las primeras
clases del api d eprueba
de Android.
Objetivos
Objetivos
3
1. Introducción
2. Android Testing
Project
3. Asserts
4. Clases Base para
Pruebas
5. Para Saber Más
Índice
Índice
4
Introducción
5
Introducción
6
Introducción
Clase base para
pruebas
Proyectos de prueba
Mocks
Asserts
7
Android Testing
Project
Proyecto de prueba
9
Asserts
Asserts
11
Clases Base para
Pruebas + Mocks
Clases Base para Pruebas
Qué probar
class TestCase
JUnit 3
framework::TestCase
- fName: String
+ countTestCases() : int
# createResult() : TestResult
+ getName() : String
+ run() : TestResult
+ run(TestResult) : void
+ runBare() : void
# runTest() : void
+ setName(String) : void
# setUp() : void
# tearDown() : void
+ TestCase()
+ TestCase(String)
+ toString() : String
framework::Assert
Código que no utiliza el API de Android.
• Conectarse a Internet y traer un RSS
(librerías de apache incluidas en el API).
Clases Base para Pruebas
Qué probar class TestCase
android.test
JUnit 3
framework::TestCase
+ countTestCases() : int
+ getName() : String
+ run() : TestResult
+ run(TestResult) : void
+ runBare() : void
+ setName(String) : void
+ TestCase()
+ TestCase(String)
+ toString() : String
framework::Assert
test::AndroidTestCase
# mContext: Context
- mTestContext: Context
+ assertActivityRequiresPermission(String, String, String) : void
+ assertReadingContentUriRequiresPermission(Uri, String) : void
+ assertWritingContentUriRequiresPermission(Uri, String) : void
+ getContext() : Context
+ getTestContext() : Context
+ setTestContext(Context) : void
+ testAndroidTestCaseSetupProperly() : void
Código que utiliza
el contexto de la
aplicación:
• Acceso a SQLite
Clases Clases Base para Pruebas Base para
Pruebas
Qué probar class TestCase
android.test
JUnit 3
framework::TestCase
+ countTestCases() : int
+ getName() : String
+ run() : TestResult
+ run(TestResult) : void
+ runBare() : void
+ setName(String) : void
+ TestCase()
+ TestCase(String)
+ toString() : String
framework::Assert
ActivityTestCase
T:extends Activity
test::ActivityInstrumentationTestCase2
~ mActivityClass: Class<T>
~ mActivityIntent: Intent = null
~ mInitialTouchMode: boolean = false
+ ActivityInstrumentationTestCase2(String, Class<T>)
+ ActivityInstrumentationTestCase2(Class<T>)
+ getActivity() : T
+ setActivityInitialTouchMode(boolean) : void
+ setActivityIntent(Intent) : void
Actions
• Actions en un
estado real
• Métodos del ciclo
de vida
• Vistas
Clases Base para Pruebas
Services
Content Providers
16
Para saber más
Para saber más
Snippets de ejemplo:
https://github.com/javierj/android-test-
snippets

More Related Content

Similar to Introducción a Pruebas en Android

Taller Evento TestingUY 2018 - Test Automation Gourmet
Taller Evento TestingUY 2018 - Test Automation GourmetTaller Evento TestingUY 2018 - Test Automation Gourmet
Taller Evento TestingUY 2018 - Test Automation GourmetTestingUy
 
Ejercicios de evaluación de fundametnos de programacion en JAva
Ejercicios de evaluación de fundametnos de programacion en JAvaEjercicios de evaluación de fundametnos de programacion en JAva
Ejercicios de evaluación de fundametnos de programacion en JAvaMartha Beatriz Coronado Rosales
 
Como escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDComo escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDHernan Wilkinson
 
Artalde Tdd intro
Artalde Tdd introArtalde Tdd intro
Artalde Tdd introfperezplain
 
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONES
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONESPRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONES
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONESFranklin Parrales Bravo
 
Junit y Jmock
Junit y JmockJunit y Jmock
Junit y Jmockkaolong
 
Taller: Prueba Unitaria con JUnit en NetBeans
Taller: Prueba Unitaria con JUnit en NetBeansTaller: Prueba Unitaria con JUnit en NetBeans
Taller: Prueba Unitaria con JUnit en NetBeansEmerson Garay
 
Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013dayaorte
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas.. ..
 
Testing efectivo con pytest
Testing efectivo con pytestTesting efectivo con pytest
Testing efectivo con pytestHector Canto
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de softwareGomez Gomez
 
Artesania de Software y TDD
Artesania de Software y TDDArtesania de Software y TDD
Artesania de Software y TDDAlfredo Chavez
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJSRodrigo Pimentel
 

Similar to Introducción a Pruebas en Android (20)

Introducción a tdd
Introducción a tddIntroducción a tdd
Introducción a tdd
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDD
 
Taller Evento TestingUY 2018 - Test Automation Gourmet
Taller Evento TestingUY 2018 - Test Automation GourmetTaller Evento TestingUY 2018 - Test Automation Gourmet
Taller Evento TestingUY 2018 - Test Automation Gourmet
 
Ejercicios de evaluación de fundametnos de programacion en JAva
Ejercicios de evaluación de fundametnos de programacion en JAvaEjercicios de evaluación de fundametnos de programacion en JAva
Ejercicios de evaluación de fundametnos de programacion en JAva
 
Buenas practicas y código limpio en C#
Buenas practicas y código limpio en C#Buenas practicas y código limpio en C#
Buenas practicas y código limpio en C#
 
Como escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDComo escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDD
 
Artalde Tdd intro
Artalde Tdd introArtalde Tdd intro
Artalde Tdd intro
 
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONES
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONESPRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONES
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONES
 
Junit y Jmock
Junit y JmockJunit y Jmock
Junit y Jmock
 
Taller: Prueba Unitaria con JUnit en NetBeans
Taller: Prueba Unitaria con JUnit en NetBeansTaller: Prueba Unitaria con JUnit en NetBeans
Taller: Prueba Unitaria con JUnit en NetBeans
 
S9-DAW-2022S1.pptx
S9-DAW-2022S1.pptxS9-DAW-2022S1.pptx
S9-DAW-2022S1.pptx
 
Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013Pruebas de aceptación 15 11_2013
Pruebas de aceptación 15 11_2013
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas
 
Testing efectivo con pytest
Testing efectivo con pytestTesting efectivo con pytest
Testing efectivo con pytest
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de software
 
Artesania de Software y TDD
Artesania de Software y TDDArtesania de Software y TDD
Artesania de Software y TDD
 
Pruebas de Escritorio
Pruebas de EscritorioPruebas de Escritorio
Pruebas de Escritorio
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
 
TDD: ¿Cómo escribir código testeable?
TDD: ¿Cómo escribir código testeable?TDD: ¿Cómo escribir código testeable?
TDD: ¿Cómo escribir código testeable?
 
Presentación: xUnit y Junit
Presentación: xUnit y JunitPresentación: xUnit y Junit
Presentación: xUnit y Junit
 

More from Javier_J

Cómo aplicar TDD. Almería 13/05/2014
Cómo aplicar TDD. Almería 13/05/2014Cómo aplicar TDD. Almería 13/05/2014
Cómo aplicar TDD. Almería 13/05/2014Javier_J
 
TDD y Python
TDD y PythonTDD y Python
TDD y PythonJavier_J
 
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)Las Claves del Desarrollo Dirigido por Pruebas (o TDD)
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)Javier_J
 
Codemotion 2013 - Desarrollo de videojuegos dirigido por pruebas
Codemotion 2013 - Desarrollo de videojuegos dirigido por pruebasCodemotion 2013 - Desarrollo de videojuegos dirigido por pruebas
Codemotion 2013 - Desarrollo de videojuegos dirigido por pruebasJavier_J
 
Conferencia Agile Spain 2.013 - Programando Juegos Casuales con Desarrollo Di...
Conferencia Agile Spain 2.013 - Programando Juegos Casuales con Desarrollo Di...Conferencia Agile Spain 2.013 - Programando Juegos Casuales con Desarrollo Di...
Conferencia Agile Spain 2.013 - Programando Juegos Casuales con Desarrollo Di...Javier_J
 
GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos
GamwUS. Desarrollo Diriguido por Pruebas y VideojuegosGamwUS. Desarrollo Diriguido por Pruebas y Videojuegos
GamwUS. Desarrollo Diriguido por Pruebas y VideojuegosJavier_J
 
Videojuegos en Javascript con TDD y Jasmine
Videojuegos en Javascript con TDD y JasmineVideojuegos en Javascript con TDD y Jasmine
Videojuegos en Javascript con TDD y JasmineJavier_J
 
GameUs - Herramientas de Desarrollo de Videojuegos
GameUs - Herramientas de Desarrollo de VideojuegosGameUs - Herramientas de Desarrollo de Videojuegos
GameUs - Herramientas de Desarrollo de VideojuegosJavier_J
 
Herramientas para el Desarrollo de Videojuegos
Herramientas para el Desarrollo de VideojuegosHerramientas para el Desarrollo de Videojuegos
Herramientas para el Desarrollo de VideojuegosJavier_J
 
Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012
Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012
Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012Javier_J
 
Kata Tenis. Enunciados y soluciones alternativas. Python Sevilla 30/11/2012
Kata Tenis. Enunciados y soluciones alternativas. Python Sevilla 30/11/2012Kata Tenis. Enunciados y soluciones alternativas. Python Sevilla 30/11/2012
Kata Tenis. Enunciados y soluciones alternativas. Python Sevilla 30/11/2012Javier_J
 
TDD y Python
TDD y PythonTDD y Python
TDD y PythonJavier_J
 
IWT2 Dojo US. Presentación, próximas actividades y agenda. 9 noviembre 2012
IWT2 Dojo US. Presentación, próximas actividades y agenda. 9 noviembre 2012IWT2 Dojo US. Presentación, próximas actividades y agenda. 9 noviembre 2012
IWT2 Dojo US. Presentación, próximas actividades y agenda. 9 noviembre 2012Javier_J
 
AdV - Programación para no Programadores
AdV - Programación para no ProgramadoresAdV - Programación para no Programadores
AdV - Programación para no ProgramadoresJavier_J
 
IWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
IWT2 DojoUs. 05 octubre 2012. Ejercicio: SokobanIWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
IWT2 DojoUs. 05 octubre 2012. Ejercicio: SokobanJavier_J
 
IWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
IWT2 DojoUs. 05 octubre 2012. Ejercicio: SokobanIWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
IWT2 DojoUs. 05 octubre 2012. Ejercicio: SokobanJavier_J
 
IWT2 Dojo US. Introducción a TDD. 5 octubre 2012
IWT2 Dojo US. Introducción a TDD. 5 octubre 2012IWT2 Dojo US. Introducción a TDD. 5 octubre 2012
IWT2 Dojo US. Introducción a TDD. 5 octubre 2012Javier_J
 
Introducción a IWT2 Dojo US. 5 noviembre 2.012
Introducción a IWT2 Dojo US. 5 noviembre 2.012Introducción a IWT2 Dojo US. 5 noviembre 2.012
Introducción a IWT2 Dojo US. 5 noviembre 2.012Javier_J
 

More from Javier_J (18)

Cómo aplicar TDD. Almería 13/05/2014
Cómo aplicar TDD. Almería 13/05/2014Cómo aplicar TDD. Almería 13/05/2014
Cómo aplicar TDD. Almería 13/05/2014
 
TDD y Python
TDD y PythonTDD y Python
TDD y Python
 
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)Las Claves del Desarrollo Dirigido por Pruebas (o TDD)
Las Claves del Desarrollo Dirigido por Pruebas (o TDD)
 
Codemotion 2013 - Desarrollo de videojuegos dirigido por pruebas
Codemotion 2013 - Desarrollo de videojuegos dirigido por pruebasCodemotion 2013 - Desarrollo de videojuegos dirigido por pruebas
Codemotion 2013 - Desarrollo de videojuegos dirigido por pruebas
 
Conferencia Agile Spain 2.013 - Programando Juegos Casuales con Desarrollo Di...
Conferencia Agile Spain 2.013 - Programando Juegos Casuales con Desarrollo Di...Conferencia Agile Spain 2.013 - Programando Juegos Casuales con Desarrollo Di...
Conferencia Agile Spain 2.013 - Programando Juegos Casuales con Desarrollo Di...
 
GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos
GamwUS. Desarrollo Diriguido por Pruebas y VideojuegosGamwUS. Desarrollo Diriguido por Pruebas y Videojuegos
GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos
 
Videojuegos en Javascript con TDD y Jasmine
Videojuegos en Javascript con TDD y JasmineVideojuegos en Javascript con TDD y Jasmine
Videojuegos en Javascript con TDD y Jasmine
 
GameUs - Herramientas de Desarrollo de Videojuegos
GameUs - Herramientas de Desarrollo de VideojuegosGameUs - Herramientas de Desarrollo de Videojuegos
GameUs - Herramientas de Desarrollo de Videojuegos
 
Herramientas para el Desarrollo de Videojuegos
Herramientas para el Desarrollo de VideojuegosHerramientas para el Desarrollo de Videojuegos
Herramientas para el Desarrollo de Videojuegos
 
Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012
Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012
Kata Tenis Completa Paso a Paso. Python Sevilla 30/11/2012
 
Kata Tenis. Enunciados y soluciones alternativas. Python Sevilla 30/11/2012
Kata Tenis. Enunciados y soluciones alternativas. Python Sevilla 30/11/2012Kata Tenis. Enunciados y soluciones alternativas. Python Sevilla 30/11/2012
Kata Tenis. Enunciados y soluciones alternativas. Python Sevilla 30/11/2012
 
TDD y Python
TDD y PythonTDD y Python
TDD y Python
 
IWT2 Dojo US. Presentación, próximas actividades y agenda. 9 noviembre 2012
IWT2 Dojo US. Presentación, próximas actividades y agenda. 9 noviembre 2012IWT2 Dojo US. Presentación, próximas actividades y agenda. 9 noviembre 2012
IWT2 Dojo US. Presentación, próximas actividades y agenda. 9 noviembre 2012
 
AdV - Programación para no Programadores
AdV - Programación para no ProgramadoresAdV - Programación para no Programadores
AdV - Programación para no Programadores
 
IWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
IWT2 DojoUs. 05 octubre 2012. Ejercicio: SokobanIWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
IWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
 
IWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
IWT2 DojoUs. 05 octubre 2012. Ejercicio: SokobanIWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
IWT2 DojoUs. 05 octubre 2012. Ejercicio: Sokoban
 
IWT2 Dojo US. Introducción a TDD. 5 octubre 2012
IWT2 Dojo US. Introducción a TDD. 5 octubre 2012IWT2 Dojo US. Introducción a TDD. 5 octubre 2012
IWT2 Dojo US. Introducción a TDD. 5 octubre 2012
 
Introducción a IWT2 Dojo US. 5 noviembre 2.012
Introducción a IWT2 Dojo US. 5 noviembre 2.012Introducción a IWT2 Dojo US. 5 noviembre 2.012
Introducción a IWT2 Dojo US. 5 noviembre 2.012
 

Introducción a Pruebas en Android

  • 1. #IWT2 DOJO US Introducción a pruebas en Android www.iwt2.org formacion@iwt2.org
  • 2. 2 • Conocer los aspectos básicos para escribir pruebas en Android • Aprender las primeras clases del api d eprueba de Android. Objetivos Objetivos
  • 3. 3 1. Introducción 2. Android Testing Project 3. Asserts 4. Clases Base para Pruebas 5. Para Saber Más Índice Índice
  • 12. Clases Base para Pruebas Qué probar class TestCase JUnit 3 framework::TestCase - fName: String + countTestCases() : int # createResult() : TestResult + getName() : String + run() : TestResult + run(TestResult) : void + runBare() : void # runTest() : void + setName(String) : void # setUp() : void # tearDown() : void + TestCase() + TestCase(String) + toString() : String framework::Assert Código que no utiliza el API de Android. • Conectarse a Internet y traer un RSS (librerías de apache incluidas en el API).
  • 13. Clases Base para Pruebas Qué probar class TestCase android.test JUnit 3 framework::TestCase + countTestCases() : int + getName() : String + run() : TestResult + run(TestResult) : void + runBare() : void + setName(String) : void + TestCase() + TestCase(String) + toString() : String framework::Assert test::AndroidTestCase # mContext: Context - mTestContext: Context + assertActivityRequiresPermission(String, String, String) : void + assertReadingContentUriRequiresPermission(Uri, String) : void + assertWritingContentUriRequiresPermission(Uri, String) : void + getContext() : Context + getTestContext() : Context + setTestContext(Context) : void + testAndroidTestCaseSetupProperly() : void Código que utiliza el contexto de la aplicación: • Acceso a SQLite
  • 14. Clases Clases Base para Pruebas Base para Pruebas Qué probar class TestCase android.test JUnit 3 framework::TestCase + countTestCases() : int + getName() : String + run() : TestResult + run(TestResult) : void + runBare() : void + setName(String) : void + TestCase() + TestCase(String) + toString() : String framework::Assert ActivityTestCase T:extends Activity test::ActivityInstrumentationTestCase2 ~ mActivityClass: Class<T> ~ mActivityIntent: Intent = null ~ mInitialTouchMode: boolean = false + ActivityInstrumentationTestCase2(String, Class<T>) + ActivityInstrumentationTestCase2(Class<T>) + getActivity() : T + setActivityInitialTouchMode(boolean) : void + setActivityIntent(Intent) : void Actions • Actions en un estado real • Métodos del ciclo de vida • Vistas
  • 15. Clases Base para Pruebas Services Content Providers
  • 17. Para saber más Snippets de ejemplo: https://github.com/javierj/android-test- snippets