entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

BDD en Java con JUnit: ¿Como nombrais los tests?

Hola.

Estoy interesado en comenzar a aplicar BDD en mis tests unitarios en java, con JUnit.

Mi idea es seguir el patrón: Given, When, Then, pero sin depender de ninguna librería externa tipo JBehave, JDave, Cucumber, etc.

Lo que se me ocurre es crear una clase por cada "Given", que represente el estado inicial de lo que se quiere testear y para la parte del "When" y el "Then", utilizar métodos.

Por ejemplo:

@RunWith(Enclosed.class)
public class QueueTest {

    public static class EmptyQueueFixture {

        Queue<String> queue;

        // Given
        @Before
        public void initialize() {
            queue = new MyQueue<String>();
        }

        // When + Then
        @Test
        public void whenInitialized_thenItShouldHaveZeroElements() {
            assertEquals(0, queue.size());
        }

        // When + Then
        @Test
        public void whenTheQueueIsInitialized_thenItsHeadShouldBeNull() {
            String head = queue.peek();
            assertEquals(null, head);
        }

        // Tests ...

    }

    public static class NonEmptyQueueFixture {

        Queue<String> queue;

        // Given
        @Before
        public void initialize() {
            queue = new MyQueue<String>();
            queue.add("A");
            queue.add("B");
            queue.add("C");
        }

        // Tests ...

    }
}

He estado unos días pensando en este tema de cómo organizar los tests y esta es la mejor solución que se me ha ocurrido hasta el momento.

¿Qué opináis?
¿Es una buena forma de hacerlo?
¿Se os ocurre una forma más clara/ordenada?
¿Alguien que haya probado el BDD con JUnit podría comentar cómo ha organizado los tests y cómo ha nombrado los tests?

Un saludo.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta