La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Test Driven Development

Presentaciones similares


Presentación del tema: "Test Driven Development"— Transcripción de la presentación:

1 Test Driven Development
Bernd Biedermann Tomás Henriquez

2 Introducción Codificación Clásica TDD (Test Driven Development)
Se programa y se prueba Exceso de errores y falta de tiempo TDD (Test Driven Development) Programar pruebas Codificar para la prueba

3 Que son las Test Units? Programas para probar clases
No son pruebas de requerimiento o aceptación Kent Beck, Chrysler C3 Project, Smalltalk Portado a Java, JUnit …

4 NUnit Testing Framework
Version para .NET Introduce los Attributes Utililiza Attributes para encontrar tests dentro del código

5 NUnit Testing Framework

6 Attributes TestFixture Test Setup & Teardown ExpectedExeption Ignore

7 Attributes Ejemplo namespace UnitTestingExamples { using System;
using NUnit.Framework; [TestFixture] public class SomeTests [Test] [Ignore(“Nos saltamos esta.")] public void TestOne() // Aquí ponemos codigo de prueba }

8 Assertion Class Clase para hacer Asserts
Contiene un set de funciones para usar en los tests

9 Assertion Class Ejemplo
namespace UnitTestingExamples { using System; using NUnit.Framework; [TestFixture] public class SomeTests [Test] public void TestOne() int i = 4; Assertion.AssertEquals( 4, i ); }

10 NUnit con TDD Escribir un test.
Correr el test. Falla por que el codigo aun no existe! Escribir un esqueleto vacio para que el test compile. Correr el Test. Deberia fallar, o el test no esta bien diseñado. Implementar el codigo que pasa el test. Correr el test. Deberia pasar. Si no lo hace, revisar el codigo Comenzar de nuevo con otro test

11 Diagrama de Integración

12 Mock Objects Tests prueban más de una clase
Mock Objects aíslan las clases para las pruebas Obtención de feedback

13 Mock Objects Fáciles de hacer Fáciles de instalar Rápidos
Determinísticos (producen resultados predecibles) Permiten una fácil verificación de que se hicieron las llamas correctas en el orden correcto

14 Mock Objects en la Arquitectura

15 Un Primer MockObject [Test] public void MiTest () {     Declaracion del Objeto     Creacion de una instancia del Mock     Inicializar el objeto como MockObject     Declarar lo que se espero que pase      Llamar el Metodo;    Verificar }

16 Mock Object con NMock Para declarar un Mock Object
DynamicMock MiMock = new DynamicMock (typeof (Interface));     

17 Verificar la llamada Declaramos un objeto:
Objeto miObjeto = new Objeto(); Lo llamamos con el MockObject: clase.Metodo ((Interface) MiMock.MockInstance); Declaramos lo que esperamos que pase: MiMock.Expect (“MetodoEsperado",valor esperado); llamada al metodo Verificacion: MiMock.Verify ();

18 Ejemplo Los Gatos interface ICat {     string Name     {         get; set;     }     void Eat ();     void Sleep ();     void Meow (); }

19 Primera Clase class CatSitter {     ArrayList _cats = new ArrayList ();     public void TakeCareOf(ICat cat)     {         _cats.Add (cat);     }     public virtual void DoWork ()     {         foreach (ICat cat in _cats)         {             FeedCat (cat);         }     }     private void FeedCat (ICat cat)     {         cat.Eat ();     } }

20 Segunda Clase class LazyCatSitter : CatSitter {     public override void DoWork()     {             // no hace nada     } }

21 Primer Test [Test] public void LazyCatSitterTest () {     LazyCatSitter lazyCatSitter = new LazyCatSitter();          DynamicMock funnyBunny = new DynamicMock (typeof (ICat));     DynamicMock baerchen = new DynamicMock (typeof (ICat));     lazyCatSitter.TakeCareOf ((ICat) funnyBunny.MockInstance);     lazyCatSitter.TakeCareOf ((ICat) baerchen.MockInstance);     funnyBunny.Expect ("Eat", null); // esperamos que sea invocado      baerchen.Expect ("Eat", null); // el metodo Eat.     lazyCatSitter.DoWork ();     funnyBunny.Verify (); // Verificamos que se haya llamado     baerchen.Verify (); // el metodo }


Descargar ppt "Test Driven Development"

Presentaciones similares


Anuncios Google