Necesito crear 3 casos de prueba para este proyecto java.

Estoy empezando a programar y necesito crear 3 casos de prueba para este proyecto.

Mi main. Java es este:

package prácticaunidad3;
/**
 *
 * @author Francico Javier Cabrerizo Membrilla
 */
public class Main {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        CCuenta miCuenta;
        double saldoActual;
        
        miCuenta = new CCuenta("Juan López","1000-2365-85-123456789",2500,0);
        try
        {
            miCuenta.retirar(2300);
        } catch (Exception e)
        {
            System.out.print("Fallo al retirar");
        }
        
        try
        {
            System.out.println("Ingreso en cuenta");
            miCuenta.ingresar(695);
        } catch (Exception e)
        {
            System.out.print("Fallo al ingresar");
        }
        saldoActual = miCuenta.estado();
        System.out.println("El saldo actual es"+ saldoActual );
    }
}

Y tengo otro archivo CCuenta.java con estos datos:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
 */
package prácticaunidad3;
/**
 *
 * @author Francisco Javier Cabrerizo Membrilla
 */
public class CCuenta {
    // Propiedades de la Clase Cuenta
    private String nombre;
    private String cuenta;
    private double saldo;
    private double tipoInterés;
    /* Constructor sin argumentos */
    public CCuenta ()
    {
    }
    // Constructor con parámetro para iniciar todas las propiedades de la clase
    public CCuenta (String nom, String cue, double sal, double tipo)
    {
        nombre =nom;
        cuenta=cue;
        saldo=sal;
    }
   // Método para asignar el nombre del titular de la cuenta
    public void asignarNombre(String nom)
    {
        nombre=nom;
    }
    // Método que me devuelve el nombre del titular
    public String obtenerNombre()
    {
        return nombre;
    }
    // Método que me devuelve el saldo disponible en cada momento
     public double estado ()
    {
        return saldo;
    }
    /* Método para ingresar cantidades en la cuenta. Modifica el saldo.
     * Este método va a ser probado con Junit
     */
    public void ingresar(double cantidad) throws Exception
    {
        if (cantidad<0)
            throw new Exception("No se puede ingresar una cantidad negativa");
        saldo = saldo + cantidad;
    }
    /* Método para retirar cantidades en la cuenta. Modifica el saldo.
     * Este método va a ser probado con Junit
     */
    public void retirar (double cantidad) throws Exception
    {
        if (cantidad <= 0)
            throw new Exception ("No se puede retirar una cantidad negativa");
        if (estado()< cantidad)
            throw new Exception ("No se hay suficiente saldo");
        saldo = cantidad - saldo;
    }
    // Método que me devuelve el número de cuenta
    public String obtenerCuenta ()
    {
        return cuenta;
    }
}

Necesito crear 3 casos de prueba que permitan verificar el metodo ingresar, la funcion retirar y otro que permita verificar los dos a la vez.

¿Cómo puedo hacer esto? ¿Qué codigo tengo que introducir para ello?

Respuesta
1

En la programación "real" se suele usar sistemas como jUnit para realizar test unitarios de este tipo. Sin embargo en el mundo académico, suelen utilizarse métodos de prueba que simplemente realizan las llamadas según un diseño UML de casos de uso. Es decir por norma general debes diseñar casos de uso para cada funcionalidad de tu programa como mínimo 2. Uno que provoque que el programa falle, y otro que haga que el programa funcione como se espera.

Debes intentar crear los casos de uso de forma abstracta, es decir como si no conocieras lo que hace el programa por dentro, a esto se le llama pruebas unitarias de caja negra. Por ejemplo, sin mirar el código puedes pensar que al tratarse de una cuenta, debes poder hacer ingresos y retirar cantidades de dinero. Los casos de uso mas habituales por ejemplo para ingresar serian los siguientes:

Ingreso(0);

Ingreso(-1);

Ingreso(a);

Ingreso(1000);

Ingreso(null);

Esta es la teoría, lógicamente java de manera automática te dirá que alguno de estos casos no se pueden realizar. Por lo tanto tendrás que validar los que si se puedan realizar:

    public static void main(String[] args) throws IOException {
        boolean exito = testIngreso(); // && testRetirar() && testAmbos();
        if (exito) {
            System.out.println("OK");
        } else {
            System.out.println("KO");
        }
    }
    private static boolean testIngreso() {
        boolean respuesta = true;
        try {
            // esto deberia ir bien
            ingresar(100);
        } catch (Exception e) {
            respuesta = false;
        }
        try {
            // esto deberia ir mal
            ingresar(-1);
            // pero si va bien y llega aqui esque no es la respuesta que espero
            respuesta = false;
        } catch (Exception e) {
            // no hago nada ya que lo que espero es que vaya mal
        }
        return respuesta;
    }

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas