junit. manual de usuario v2.0.pdf

Upload: alexander-choquenaira-florez

Post on 22-Feb-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    1/24

    Manual de usuario JUnit

    Fecha: 17 Diciembre 2014 Referencia:

    EJIE S.A.

    Mediterrneo, 14

    01010 V itoria-Gasteiz

    Posta-kutxatila / Apartado: 809

    01080 V itoria-Gasteiz

    Tel. 945 01 73 00*

    Fax. 945 01 73 01

    www.ejie.es

    Este docu mento es pro piedad de EJIE, S.A. y su contenido es confi dencial. Este documento no puede ser reproducido, e n su tota lidad o parcialmente, ni mostrado a otros, ni utiliza dopara otros propsit os que los que han orig inado su entrega, sin el previo permiso escri to de EJIE, S.A.. En el caso de ser entregado en vir tud de un contrato, su utili zacin estarlimitada a lo expresamente autorizado en dicho contrato. EJIE, S.A. no podr ser considerada responsable de eventuales errores u omisiones en la edicin del documento.

    http://www.ejie.es/http://www.ejie.es/
  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    2/24

    Control de documentacin

    Ttulo de documento: Proyecto

    Histrico de versiones

    Cdigo: Versin: Fecha: Resumen de cambios:

    V1.0

    V2.0 Introducido Junit4.0

    Cambios producidos desde la ltima versin

    Primera versin.

    Control de difusin

    Responsable: Ander Martnez

    Aprobado por:

    Firma: Fecha: 12/09/2014

    Distribucin:

    Referencias de archivo

    Autor: Grupo de Consultora de reas de Conocimiento

    Nombre archivo: JUnit. Manual de Usuario v2.0.doc

    Localizacin:

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    3/24

    Contenido

    Captulo/seccin Pgina

    1

    Introduccin 4

    2

    Conceptos bsicos 4

    3

    Utilizando JUnit en Eclipse 5

    3.1

    JUnit 3 7

    3.1.1.

    Mtodo setUp() 9

    3.1.2.

    Mtodo tearDown( ) 10

    3.1.3.

    Mtodos de aserciones 10

    3.1.1.

    Ejemplo de Test Case 12

    3.1

    JUnit 4 15

    3.1.1.

    Anotaciones en JUnit 4 18

    3.1.2.

    Mtodos de aserciones 19

    3.1.3.

    Ejemplo de Test Case 19

    3.2

    Crear un Test Suite 22

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    4/24

    1 Introduccin

    El presente manual es una gua de iniciacin en el manejo de JUnit. El documento se estructura envarios apartados, en los que se han incluido los principales aspectos que debe saber un usuario novato de

    JUnit para empezar a trabajar con la herramienta. Se referencian las dos versiones de JUnit que se puedenutilizar en EJIE (JUnit 3 para weblogic8 y JUnit 4 para weblogic11)

    2 Conceptos bsicos

    JUnit es un paquete Java utilizado para automatizar los procesos de prueba. Mediante la creacin deTests, JUnit realizar una prueba en el cdigo que indique el usuario.

    Siempre que vayamos a desarrollar algn tipo de software, habr que tener en cuenta las pruebas arealizar, con esto nos cercioraremos de que nuestro programa o librera funcionen correctamente.

    Normalmente las pruebas se realizan por parte del programador, esto incluye que el orden elegidopodra no ser correcto y con ello alargar demasiado el trabajo. Aunque inicialmente el proceso sea msrpido, con el avance de la aplicacin podra complicarse el trabajo, ya que cada vez que se fuera a probaralgo, habra que volver a escribir el cdigo para realizar la prueba ya que no se tiene la certeza de culessern los mdulos afectados con varios cambios, ni podremos adivinar exactamente la lnea donde se hagenerado el error.

    Existen varias razones para utilizar JUnit a la hora de hacer pruebas de cdigo:

    La herramienta no tiene coste alguno, podremos descargarla directamente desde la Weboficial.

    Es una herramienta muy utilizada, por lo que no ser complicado buscar documentacin.

    Existen varios plugins para poder utilizar con diferentes Entornos de Desarrollo Integrado(IDE).

    Existen tambin muchas herramientas de pruebas de cobertura que utilizaran como baseJUnit.

    Con JUnit, ejecutar tests es tan fcil como compilar tu cdigo. El compilador "testea" lasintaxis del cdigo y los tests "validan"la integridad del cdigo.

    Los resultados son chequeados por la propia aplicacin y dar los resultados inmediatamente.

    Los tests JUnit se pueden organizar en suites, las que contendrn ejemplares de tests, inclusopodrn contener otras suites.

    Utilizando los tests programados en JUnit, la estabilidad de nuestras aplicaciones mejorarsustancialmente.

    Los tests realizados se podrn presentar junto con el cdigo, para validar el trabajo realizado.

    Para obtener informacin adicional sobre el producto acceder a su pgina Web:

    http://www.junit.org/

    http://www.junit.org/http://www.junit.org/http://www.junit.org/
  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    5/24

    3 Utilizando JUnit en Eclipse

    Utilizando el IDE Eclipse se pueden crear clases JUnit Test Case y Test Suites. Cuando se cree el

    primer Test Case se pedir la versin de JUnit a utilizar (versin 3 o 4) y dependiendo de la utiliz ada sugerirla introduccin de la librera en el classpath del proyecto. A continuacin se mostrarn ejemplos de cmocrear pruebas utilizando las dos versiones.

    El primer paso sera crear un TestCase. Para ello sobre el paquete deseado pulsamos botn derechodel ratn y damos a New > Other y seleccionamos dentro de la carpeta Java > JUnit > JUnit TestCase.

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    6/24

    Una vez ah se decidir la versin de JUnit a utilizar:

    A partir de aqu se crearn las diferentes clases dependiendo de la librera selec cionada.

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    7/24

    3.1 JUnit 3

    Se seleccionar crear el Test Case con JUnit 3 como se ve a continuacin.

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    8/24

    Si se le da a Next se podrn seleccionar los mtodos a testear

    Si no se tiene aadida la librera al classpath se sugerir aadirla.

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    9/24

    Te crear un esqueleto de la clase para implementar los test a posteriori.

    packagecom.ejie.w84b.test.junit3;

    import junit.framework.TestCase;

    publicclass StringArrayUtilsClassesTest extendsTestCase {

    protectedvoidsetUp() throwsException {

    super.setUp();}

    protectedvoidtearDown() throwsException {super.tearDown();

    }

    publicvoidtestStringArrayUtilsClasses() {fail("Not yet implemented");

    }

    publicvoidtestGetMaxLength() {fail("Not yet implemented");

    }

    publicvoidtestGetTotalLength() {fail("Not yet implemented");

    }

    publicvoidtestGetIndexOf() {fail("Not yet implemented");

    }

    publicvoidtestCreateLineaBarCode() {fail("Not yet implemented");

    }

    }

    3.1.1. Mtodo setUp()

    Podremos encontrar casos en los que necesitemos ejecutar algn tipo de tarea especfica, antes delanzar la prueba.

    Por ejemplo vendra muy bien, para abrir una base de datos antes de comenzar las pruebas.Pasaremos a hacer un ejemplo bsico viendo el cdigo, para una mejor comprensin:

    pu bl ic class TestClass extends TestCase{

    pub l ic void testPrueba1 ( ){

    System.out.printIn (Prueba1);

    }pub l ic void testPrueba2 ( )

    {System.out.printIn (Prueba2);

    }pub l ic void setUp ( )

    {// A qu se ej ecu tara setUp ( ) an tes d e que se empiece a ej ecu ta r u n mto do.

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    10/24

    }}

    3.1.2. Mtodo tearDown( )

    Este mtodo tiene una funcin similar a setUp(), con la diferencia de que ste se ejecutar al final del cdigo,para finalizar el tipo de tarea especificada.

    Esta opcin la podramos utilizar por ejemplo para desconectar una base de datos abiertaanteriormente con el mtodo setUp ( )

    pu bl ic class TestClass extends TestCase{

    pub l ic void testPrueba1 ( ){

    System.out.printIn (Prueba1);

    }pub l ic void testPrueba2 ( ){

    System.out.printIn (Prueba2);}pub l ic void setUp ( )

    {// A qu se ej ecu tara setUp ( ) an tes d e que se empiece a ej ecu tar u n mto do .

    }

    Publ ic v oid tearDown ( ){

    //A qu se ejecu tara t ear Down ( ) desp us de term inar de ej ecu ta r el m etodo .}}

    3.1.3. Mtodos de aserciones

    En este caso veremos el mtodo assert, para saber cmo debemos utilizarlo. Lo normal es que losmtodos de una clase de prueba creen una instancia de la clase principal. Despus invocar al mtodo quevayamos a probar y seleccionaremos el mtodo assertque ms nos convenga.

    La definicin del mtodo assert, viene a ser que realiza una comparacin de cualquier tipo de valor yen caso de que la prueba no sea exitosa, detendr el proceso.El mtodo assertse ocupar de comparar el resultado de ejecutar el mtodo con el valor que

    esperemos de retorno.

    A continuacin, aadiremos una lista con todas las funciones del mtodo asserten JUnit.

    Static void fail ()Falla el test sin ningn mensaje.

    Static void fail (java.lang.String message)Falla el test con el mensaje indicado.

    Static void assertEquals (bolean excepted, bolean actual)Verifica que los valores proporcionados sean iguales.

    Static void assertEquals (byte expected, byte actual)Verifica que los valores proporcionados sean iguales.

    Static void assertEquals (char expected, char actual)Verifica que los valores proporcionados sean iguales.

    Static void assertEquals (double expected, double actual, double delta)Verifica que los valores proporcionados sean iguales tomando en cuenta

    la tolerancia indicada por el parmetro delta.

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    11/24

    Static void assertEquals (float expected, float actual, flota delta)Verifica que los valores proporcionados sean iguales tomando en cuenta

    la tolerancia indicada por el parmetro delta.Static void assertEquals (int expected, int actual)

    Verifica que los valores proporcionados sean iguales.Static void assertEquals (long expected, long actual)

    Verifica que los valores proporcionados sean iguales.

    Static void assertEquals (java.lang.Object expected, java.lang.Object actual)Verifica que los valores proporcionados sean iguales.

    Static void assertEquals (short expected, short actual)Verifica que los valores proporcionados sean iguales.

    Static void assertEquals (java.lang.String message, bolean expected, bolean actualVerifica que los valores proporcionados sean iguales. Si no lo son, enva

    el mensaje indicado por el parmetro message.Static void assertEquals (java.lang.String message, byte expected, byte actual)

    Verifica que los valores proporcionados sean iguales. Si no lo son, envael mensaje indicado por el parmetro message.

    Static void assertEquals (java.lang.String message, char expected, char actual)Verifica que los valores proporcionados sean iguales. Si no lo son, enva

    el mensaje indicado por el parmetro message.Static void assertEquals (java.lang.string message, double expected, double actual, double

    delta)Verificar que los valores proporcionados sean iguales dentro de la

    tolerancia especificada por el parmetro delta. Si no lo son, enva el mensajeindicado por el parmetro message.

    Static void assertEquals (java.lang.string message, float expected, float actual, float delta)Verificar que los valores proporcionados sean iguales dentro de la

    tolerancia especificada por el parmetro delta. Si no lo son, enva el mensajeindicado por el parmetro message.

    Static void assertEquals (java.lang.String message, int expected, int actual)Verifica que los valores proporcionados sean iguales. Si no lo son, enva

    el mensaje indicado por el parmetro message.

    Static void assertEquals (java.lang.String message, long excepted, long actual)Verifica que los valores proporcionados sean iguales. Si no lo son, enviael mensaje indicado por el parmetro message.

    Static void assertEquals (java.lang.String message, java.lang.Object excepted,java.lang.Object actual)

    Verifica que los valores proporcionados sean iguales. Si no lo son, envael mensaje indicado por el parmetro message.

    Static void assertEquals (java.lang.String message, short excepted, short actual)Verifica que los valores proporcionados sean iguales. Si no lo son, enva

    el mensaje indicado por el parmetro message.Static void assertEquals (java.lang.String excepted, java.lang.String actual)

    Verifica que los valores proporcionados sean iguales.Static void assertEquals (java.lang.String message, java.lang.String expected,

    java.lang.String actual)Verifica que los valores proporcionados sean iguales. Si no lo son, envael mensaje indicado por el parmetro message.

    Static void assertFalse (bolean condition)Verifica que el objeto bolean seleccionado sea falso.

    Static void assertFalse (java.lang.String message, bolean condition)Verifica que el objeto bolean seleccionado sea falso.

    Static void assertNotNull (java.lang.Object object)Verifica que el objeto proporcionado no sea null.

    Static void assertNotNull (java.lang.String message, java.lang.Object object)Verifica que el objeto proporcionado no sea null y enva un mensaje en

    caso de que sea cierto.Static void assertNotSame (java.lang.Object expected, java.lang.Object actual)

    Verifica que los objetos proporcionados no son los mismos.Static void assertNotSame (java.lang.String message, java.lang.Object expected,

    java.lang.Object actual)Verifica que los objetos proporcionados no son los mismos.

    Static void assertNull (java.lang.Object object)Verifica que el objeto proporcionado es null.

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    12/24

    Static void assertNull (java.lang.String message, java.lang.Object object)Verifica que el objeto proporcionado es null enviando un mensaje en

    caso de que no se cumpla la condicin.Static void assertSame (java.lang.Object expected, java.lang.Object actual)

    Verifica que los objetos proporcionados son los mismos.Static void assertSame (java.lang.String message, java.lang.Object expected,

    java.lang.Object actual)

    Verifica que los objetos proporcionados son los mismos enviando unmensaje en caso de que no se cumpla la condicin.

    Static void assertTrue (bolean condition)Verifica que el parmetro proporcionado true.

    Static void assertTrue (java.lang.String message, boolean condition)Verifica que el parmetro proporcionado sea true enviando un mensaje

    de error en caso de que no sea as.

    3.1.1. Ejemplo de Test Case

    A continuacin se muestra un ejemplo de Test Case con JUnit 3 que realiza pruebas unitarias de laclase com.ejie.StringArrayUtilsClasses.

    packagecom.ejie.w84b.test.junit3;

    import com.ejie.StringArrayUtilsClasses;

    import junit.framework.TestCase;

    publicclass StringArrayUtilsClassesTest extendsTestCase {

    privatestaticStringArrayUtilsClasses stringUtils;

    protectedvoidsetUp() throwsException {String[] elements = {"uno","dos","tres"};

    stringUtils= new StringArrayUtilsClasses(elements);}

    protectedvoidtearDown() throwsException {super.tearDown();

    }

    /*** Verificamos que la cadena ms larga sea la cadena "Tres"*/

    publicvoidtestgetLengthTest() throwsException {assertEquals("tres", stringUtils.getMaxLength());

    }

    /*** Prueba sobre el mtodo que devuelve la suma total de todas las cadenas* almacenadas*/

    publicvoidtestgetTotalLengthTest() {assertEquals(10, stringUtils.getTotalLength());

    }

    /*** Prueba sobre el mtodo que devuelve la posicin de una cadena.* Verificamos que si le pasamos null como argumento lanza la excepcin

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    13/24

    * correcta*/

    publicvoidtestgetIndexOfTest() {try{

    stringUtils.getIndexOf(null);fail("Debera haber lanzado una excepcin:

    java.lang.IllegalArgumentException" );

    }catch(RuntimeException re){//Tratar excepcion

    }}

    /*** Prueba sobre el mtodo que devuelve la posicin de una cadena Verificamos* que si le pasamos una cadena que no existe como argumento lanza la* excepcin correcta*/

    publicvoidtestgetIndexOfTest2() {try{

    assertEquals(0, stringUtils.getIndexOf("EsteElementoNoExiste"));

    fail("Debera haber lanzado una excepcin:java.util.NoSuchElementException" );

    }catch(RuntimeException re){//Tratar excepcion

    }}

    /*** Prueba sobre el mtodo que devuelve la posicin de una cadena.* Verificamos que si le pasamos una cadena que existe devuelve la posicin

    correcta*/

    publicvoidtestgetIndexOfTest3() {

    assertEquals(1, stringUtils.getIndexOf("dos"));}

    }

    Para ejecutar la prueba unitaria en el menu contextual de la clase JUnit a ejecutar se selecciona Run As JUnitTest.

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    14/24

    Tras la ejecucin se mostrarn los resultados de las pruebas en la vista de JUnit:

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    15/24

    3.1 JUnit 4

    Se seleccionar crear el Test Case con JUnit 4 como se ve a continuacin.

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    16/24

    Si se le da a Next se podrn seleccionar los mtodos a testear

    Si no se tiene aadida la librera al classpath se sugerir aadirla.

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    17/24

    Te crear un esqueleto de la clase para implementar los test a posteriori.

    packagecom.ejie.w84b.test.junit4;

    importstaticorg.junit.Assert.*;

    importorg.junit.After;importorg.junit.Before;importorg.junit.Test;

    publicclassStringArrayUtilsClassesTest {

    @BeforepublicvoidsetUp() throwsException {}

    @AfterpublicvoidtearDown() throwsException {}

    @TestpublicvoidtestStringArrayUtilsClasses() {

    fail("Not yet implemented"); // TODO}

    @TestpublicvoidtestGetMaxLength() {

    fail("Not yet implemented"); // TODO

    }

    @TestpublicvoidtestGetTotalLength() {

    fail("Not yet implemented"); // TODO}

    @TestpublicvoidtestGetIndexOf() {

    fail("Not yet implemented"); // TODO

    }

    @TestpublicvoidtestCreateLineaBarCode() {

    fail("Not yet implemented"); // TODO}

    }

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    18/24

    3.1.1. Anotaciones en JUnit 4

    JUnit 4 se basa en anotaciones para determinar los mtodos de a testear as como para ejecutarcdigo previo a los tests a realizar. En la tabla a continuacin se muestran las anotaciones disponibles:

    Anotacin Descripcin

    @Testpublic void method()

    La anotacin @Testidentifica el mtodo como mtodo de test.

    @Test (expected =Exception.class)

    Falla si el mtodo no lanza la excepcin esperada.

    @Test(timeout=100) Falla si el mtodo tarda ms de 100 milisegundos.

    @Beforepublic void method()

    Este mtodo es ejecutado antes de cada test. Se usa para prepararel entorno de test (p.ej., leer datos de entrada, inicializar la clase).

    @Afterpublic void method()

    Este mtodo es ejecutado despus de cada test. Se usa paralimpiar el entorno de test (p.ej., borrar datos temporales, restaurarvalores por defecto). Se puede usar tambin para ahorrar memorialimpiando estructuras de memoria pesadas.

    @BeforeClasspublic static voidmethod()

    Este mtodo es ejecutado una vez antes de ejecutar todos los test.Se usa para ejecutar actividades intensivas como conectar a unabase de datos. Los mtodos marcados con esta anotacinnecesitan ser definidos como staticpara trabajar con JUnit.

    @AfterClass

    public static voidmethod()

    Este mtodo es ejecutado una vez despus que todos los testshayan terminado.Se usa para actividades de limpieza, como por

    ejemplo, desconectar de la base de datos. Los mtodos marcadoscon esta anotacin necesitan ser definidos como staticpara trabajarcon JUnit.

    @Ignore

    Ignora el mtodo de test. Es til cuando el cdigo a probar hacambiado y el caso de uso no ha sido todava adaptado. O si eltiempo de ejecucin del mtodo de test es demasiado largo paraser includo.

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    19/24

    3.1.2. Mtodos de aserciones

    Los mtodos para las aserciones son como los de la versin anterior:

    Statement Descripcin

    fail(String)

    Hace que el mtodo falle. Debe ser usado para probar que ciertaparte del cdigo no es alcanzable para que el test devuelva fallo

    hasta que se implemente el mtodo de prueba. El parmero Stringes opcional.

    assertTrue([message], booleancondition)

    Verifica que la condicin booleana sea true.

    assertFalse([message], boolean

    condition)Verifica que la condicin booleana sea false.

    assertEquals([String message],

    expected, actual)

    Verifica que los dos valores son idnticos. Nota: Para arrays se

    verifica la referencia no el contenido de stos.

    assertEquals([String message],expected, actual, tolerance)

    Verifica que los valores float o double coincidan. La tolerancia esel nmero de decimales que deben ser iguales.

    assertNull([message], object) Verifica que el objeto sea nulo.

    assertNotNull([message], object) Verifica que el objeto no sea nulo.

    assertSame([String], expected,

    actual) Verifica que las dos variables referencien al mismo objeto.

    assertNotSame([String], expected,

    actual)Verifica que las dos variables no referencien al mismo objeto.

    3.1.3. Ejemplo de Test Case

    A continuacin se muestra un ejemplo de Test Case con JUnit 4 que realiza pruebas unitarias de laclase com.ejie.StringArrayUtilsClasses.

    packagecom.ejie.w84b.test.junit4;

    importstaticorg.junit.Assert.*;

    importjava.io.BufferedReader;importjava.io.FileReader;importjava.io.IOException;importjava.util.Vector;

    importjunit.framework.Assert;importjunit.framework.JUnit4TestAdapter;

    importorg.junit.After;importorg.junit.AfterClass;

    importorg.junit.Before;importorg.junit.BeforeClass;importorg.junit.Ignore;importorg.junit.Test;

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    20/24

    importorg.junit.runner.JUnitCore;

    import com.ejie.StringArrayUtilsClasses;import com.ejie.test.JUnit4UnitClasesTestStringArrayUtilsTest;

    publicclassStringArrayUtilsClassesTest {

    privatestaticStringArrayUtilsClasses stringUtils;

    /*** Leemos desde un fichero, los datos de prueba con los que vamos a realizar

    las pruebas*/

    @BeforeClasspublicstaticvoidinicioClase() {

    String[] elements = {"uno","dos","tres"};stringUtils= new StringArrayUtilsClasses(elements);

    }

    /**

    * Este mtodo liberar los recursos reservados en BeforeClass*/

    @AfterClasspublicstaticvoidfinClase() {

    // Para este ejemplo no hacemos nada, pero exponemos el mtodo por

    // motivos didcticos exclusivamente}

    /*** Este mtodo se ejecuta para cada prueba ANTES de invocar el cdigo de cada

    prueba*/

    @Before

    publicvoidtestStart() {// Para este ejemplo no hacemos nada, pero exponemos el mtodo por// motivos didcticos exclusivamente

    }

    /*** Este mtodo se ejecuta para cada prueba DESPUS de invocar el cdigo de

    cada prueba.

    */@AfterpublicvoidtestEnd() {

    // Para este ejemplo no hacemos nada, pero exponemos el mtodo por// motivos didcticos exclusivamente

    }

    /*** Verificamos que en caso de recibir un null como argumento en el* constructor la clase lanza una IllegalArgumentException*/

    @Test(expected = java.lang.IllegalArgumentException.class)publicvoidinitTest() {

    newStringArrayUtilsClasses(null);}

    /**

    * Verificamos que la cadena ms larga sea la cadena "Tres"

    */@TestpublicvoidgetLengthTest() {

    Assert.assertEquals("tres", stringUtils.getMaxLength());}

    /**

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    21/24

    * Prueba sobre el mtodo que devuelve la suma total de todas las cadenas* almacenadas Suponemos que el calculo del tamao total es un mtodo* crtico que debe realizarse antes de 25 milisegundos*/

    @Test(timeout = 25)publicvoidgetTotalLengthTest() {

    Assert.assertEquals(10, stringUtils.getTotalLength());

    }

    /*** Prueba sobre el mtodo que devuelve la posicin de una cadena.* Verificamos que si le pasamos null como argumento lanza la excepcin* correcta*/

    @Test(expected = java.lang.IllegalArgumentException.class)publicvoidgetIndexOfTest() {

    stringUtils.getIndexOf(null);

    }

    /**

    * Prueba sobre el mtodo que devuelve la posicin de una cadena Verificamos* que si le pasamos una cadena que no existe como argumento lanza la* excepcin correcta*/

    @Test(expected = java.util.NoSuchElementException.class)publicvoidgetIndexOfTest2() {

    Assert.assertEquals(0, stringUtils.getIndexOf("EsteElementoNoExiste"));}

    /*** Prueba sobre el mtodo que devuelve la posicin de una cadena.* Verificamos que si le pasamos una cadena que existe devuelve la posicin

    correcta

    */@TestpublicvoidgetIndexOfTest3() {

    Assert.assertEquals(1, stringUtils.getIndexOf("dos"));}

    @Ignore("Este test no se hace, se expone como ejemplo")@Testpublicvoidignore() {

    // Cdigo que compone la prueba// ...// ...

    }

    }

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    22/24

    Para ejecutar la prueba unitaria se procedera de manera igual que para el ejemplo de JUnit 3, en el menucontextual de la clase JUnit a ejecutar se selecciona Run As JUnit Test y obtendramos el resultado de laejecucin.

    3.2 Crear un Test Suite

    Una vez creados varios TestCase se podrn agrupar en rboles de TestSuite , estos ltimos sern losque invocquen automticamente todos los mtodos testXXX ( ) definidos en cada TestCase . En otraspalabras con un TestSuite tendremos la posibilidad de juntar varios TestCase, e incluso otros TestSuites. Deesta forma ejecutando el TestSuite apropiado, podremos ver los resultados de todos los diferentes testsunidos.

    Para crear un TestCase sobre el paquete donde residen las pruebas Junit pulsamos botn derecho delratn y damos a New > Other y seleccionamos dentro de la carpeta Java > JUnit > JUnit Test Suite.

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    23/24

    Al darle a siguiente se mostrarn las clases a incluir en el Test Suite.

    Creara una clase como la que sigue:

    packagecom.ejie.w84b.test.junit3;

    importjunit.framework.Test;importjunit.framework.TestSuite;

    publicclassAllTests {

    publicstaticTest suite() {TestSuite suite = newTestSuite(AllTests.class.getName());//$JUnit-BEGIN$suite.addTestSuite(W84bFuncionesTest2. class);suite.addTestSuite(StringArrayUtilsClassesTest. class);//$JUnit-END$returnsuite;

    }}

  • 7/24/2019 JUnit. Manual de Usuario v2.0.pdf

    24/24

    Una vez creado se podr ejecutar el TestSuite creado analogamente a los TestCasesmostrandose el

    resultado siguiente: