This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
wiki:test_1 [2024/11/12 23:13] – admin | wiki:test_1 [2024/11/12 23:18] (current) – admin | ||
---|---|---|---|
Line 28: | Line 28: | ||
Hoy en día, existen versiones de frameworks xUnit para los principales lenguajes. Por lo tanto, una de las ventajas de las pruebas unitarias es que los desarrolladores no necesitan aprender un nuevo lenguaje de programación, | Hoy en día, existen versiones de frameworks xUnit para los principales lenguajes. Por lo tanto, una de las ventajas de las pruebas unitarias es que los desarrolladores no necesitan aprender un nuevo lenguaje de programación, | ||
- | Para explicar los conceptos de pruebas unitarias, usaremos una clase Stack (Pila). | + | Para explicar los conceptos de pruebas unitarias, usaremos una clase Stack (Pila): |
+ | |||
+ | <code java> | ||
+ | |||
+ | import java.util.ArrayList; | ||
+ | import java.util.EmptyStackException; | ||
+ | |||
+ | public class Stack< | ||
+ | |||
+ | private ArrayList< | ||
+ | private int size = 0; | ||
+ | |||
+ | public int size() { | ||
+ | return size; | ||
+ | } | ||
+ | |||
+ | public boolean isEmpty() { | ||
+ | return (size == 0); | ||
+ | } | ||
+ | |||
+ | public void push(T elem) { | ||
+ | elements.add(elem); | ||
+ | size++; | ||
+ | } | ||
+ | |||
+ | public T pop() throws EmptyStackException { | ||
+ | if (isEmpty()) | ||
+ | throw new EmptyStackException(); | ||
+ | T elem = elements.remove(size-1); | ||
+ | size--; | ||
+ | return elem; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | JUnit permite implementar clases que probarán — de forma automática — las clases de la aplicación, | ||
+ | |||
+ | A continuación, | ||
+ | |||
+ | <code java> | ||
+ | |||
+ | import org.junit.Test; | ||
+ | import static org.junit.Assert.assertTrue; | ||
+ | |||
+ | public class StackTest { | ||
+ | |||
+ | @Test | ||
+ | public void testEmptyStack() { | ||
+ | Stack< | ||
+ | boolean empty = stack.isEmpty(); | ||
+ | assertTrue(empty); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | En esta primera versión, la clase StackTest tiene un único método de prueba, público, anotado con '' | ||
+ | |||
+ | Los métodos de prueba tienen la siguiente estructura: | ||
+ | |||
+ | * Primero, se crea el contexto de la prueba, también llamado fixture. Para ello, se deben instanciar los objetos que se van a probar y, si es necesario, inicializarlos. En nuestro primer ejemplo, esta parte de la prueba incluye solo la creación de una pila llamada stack. | ||
+ | |||
+ | * A continuación, | ||
+ | |||
+ | * Finalmente, debemos comprobar si el resultado del método es el esperado. Para ello, se utiliza un comando llamado assert. De hecho, JUnit ofrece varias variantes de assert, pero todas tienen el mismo objetivo: comprobar si un determinado resultado es igual a un valor esperado. En el ejemplo, usamos assertTrue, que verifica si el valor pasado como parámetro es verdadero. | ||
+ | |||
+ | Las IDEs ofrecen opciones para ejecutar solo las pruebas de un sistema, por ejemplo, a través de una opción de menú llamada Run as Test. Es decir, si el desarrollador selecciona Run, ejecutará su programa normalmente, | ||