Pregunta

Estoy siguiendo un curso en prácticas ágiles y tengo una tarea. Lo que me enseñaron, es que antes de cambiar el código (refactorizar o agregar funcionalidad), debería agregar alguna prueba, para obtener confianza y asegurarme de que no cambiaré el comportamiento mientras se refactora. Esto queda claro y tiene sentido, pero ¿qué pasa si el código no es probable sin hacer algo de refactorización primero?

Ejemplo simple:

public class Summation
{
    private int addend1;
    private int addend2;

    public Summation(int addend1, int addend2)
    {
        this.addend1 = addend1;
        this.addend2 = addend2;
    }

    public int doSum()
    {
        System.out.println(addend1 + addend2);
    }

    // Getters/setters
}

Me gustaría ejecutar una prueba de aceptación / integración usando FIT, y verifique que se verifique la siguiente tabla:

 ----------------------------
| addend1 | addend2 | result |
 ----------------------------
| 1       | 1       | 2      |
 ----------------------------
| 1       | -1      | 0      |
 ----------------------------
| -1      | 1       | 0      |
 ----------------------------
| -1      | -1      | -2     |
 ----------------------------

Pero, debido a que la función doSum() imprime la suma a la corriente de salida estándar, es difícil escribir una prueba (prefiero evitar interceptar la salida estándar). Obtendría más sentido para refactorizar ligeramente el código para tener un método que devuelva la suma. Pero debido a que técnicamente "no está permitido" cambiar el código antes de escribir cualquier prueba, esto no se recomienda.

¿Puedes darme alguna sugerencia? ¿Cómo procederías?

¡Gracias!

¿Fue útil?

Solución

Suena similar a esta pregunta .

Si está permitido o no cambiar el código, se ve obligado a interceptar el flujo de salida estándar.En cualquier caso, es parte del comportamiento.

Otros consejos

Puede escribir un archivo test.cpp para llamar a Summing.Summation (X, Y) con varios valores para X e Y en su tabla y verificar / registrar los resultados.Asegúrese de que los resultados sean lo que esperas.A continuación, ahora puede editar la clase de suma y ejecutar sus pruebas nuevamente (desde test.cpp) para asegurarse de que los valores sean los mismos que inicialmente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top