Está en la página 1de 3

TESTING JUNIT EJERCICIOS

PRÁCTICA 1. CALCULADORA
Tenemos la siguiente clase que implementa una calculadora. Fíjate en los comentarios para
entender qué hace cada método.
public class Calculadora {

private Integer pantalla;

public Calculadora() {
pantalla = 0;
}

/** Suma al número en pantalla el número indicado por parámetro */


public void suma(Integer numero) {
pantalla += numero;
}

/** Resta al número en pantalla el número indicado por parámetro */


public void resta(Integer numero) {
pantalla -= numero;
}

/** Multiplica el número en pantalla por el número indicado por parámetro */


public void multiplica(Integer numero) {
pantalla = pantalla * numero;
}

/** Divide el número en pantalla por número indicado por parámetro si este es distinto de cero */
public void divide(Integer numero) {
if (numero != 0) {
pantalla = pantalla / numero;
}
}

/** Cambia el número de la pantalla por el tanto por ciento del valor indicado */
public void porcentaje(Integer numero) {
pantalla = pantalla * numero / 100;
}

/** Cambia el numero de la pantalla a cero */


public void resetea() {
pantalla = 0;
}

/** Devuelve el número en pantalla */


public Integer getPantalla() {
return pantalla;
}

Escribe un Junit Test Case para probar:

1. El método sumar
2. El método restar
3. El método multiplicar
4. El método dividir
5. El método porcentaje
6. El método resertear

Cada uno con las pruebas que consideres.


PRÁCTICA 2. CALENDARIO
Tenemos la siguiente clase que implementa utilidades para trabajar con fechas. Fíjate en los
comentarios para entender qué hace cada método.
public class Calendario {

private Date date;

/** Inicializa el calendario en la fecha indicada. El formato debe ser dd/MM/yyyy */


/** Si el formato no es correcto, inicializa el calendario con la fecha actual. */
public Calendario(String fecha) {
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
try {
date = formatter.parse(fecha);
}
catch (ParseException e) {
date = new Date();
}
}

/** Devuelve el número de día del mes de la fecha cargada en el calendario */


/** Por ejemplo, para el 13/02/2021, devuelve 13 */
public Integer getDia() {
Calendar c = Calendar.getInstance();
c.setTime(date);
return c.get(Calendar.DAY_OF_MONTH);
}

/** Devuelve el número del mes del año de la fecha cargada en el calendario */
/** Por ejemplo, para el 13/02/2021, devuelve 2 */
public Integer getMes() {
Calendar c = Calendar.getInstance();
c.setTime(date);
return c.get(Calendar.MONTH);
}

/** Devuelve el año de la fecha cargada en el calendario. */


/** Por ejemplo, para el 13/02/2021, devuelve 2021 */
public Integer getAño() {
Calendar c = Calendar.getInstance();
c.setTime(date);
return c.get(Calendar.YEAR);
}

/** Devuelve el número de días que tiene el mes de la fecha cargada en el calendario. */
/** Por ejemplo, para el 13/02/2021, devuelve 28 */
public Integer getNumeroDiasMes() {
switch (getMes()) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
return 31;
case 4: case 6: case 9: case 11:
return 30;
case 2:
if(isBisiesto()){
return 29;
}
return 28;
default:
return 0;
}
}

/** Devuelve true si, y solo si, el año de la fecha cargada en el calendario es bisiesto. */
/** Por ejemplo, para el 13/02/2021, devuelve false */
public Boolean isBisiesto(){
Integer año = getAño();
return (año % 4 == 0 && año % 100 != 0) || año % 400 == 0;
}

Escribe un Junit Test Case para probar:

1. El constructor que inicializa el calendario y los métodos para obtener el día, el mes y el
año
2. El método para obtener el número de días del mes
3. El método para obtener si una fecha es de un año bisiesto

Cada uno con las pruebas que consideres.


PRÁCTICA 3. TABLA ENTEROS
Tenemos la siguiente clase que implementa unas utilidades para trabajar con array de enteros.
Fíjate en los comentarios para entender qué hace cada método.
public class TablaEnteros {

private Integer[] tabla;

/** Inicializa la clase con el array de enteros que se le pasa por parámetro */
public TablaEnteros(Integer[] tabla) {
this.tabla = tabla;
}

/** Suma los elementos del array y devuelve el resultado */


public Integer sumaTabla() {
Integer suma = 0;
for (Integer entero : tabla) {
suma += entero;
}
return suma;
}

/** Encuentra el mayor elemento de la tabla y lo devuelve */


/** Si el array es vacío, devolverá null */
public Integer mayorTabla() {
Integer maximo = null;
for (Integer entero : tabla) {
if (maximo == null || entero > maximo) {
maximo = entero;
}
}
return maximo;
}

/** Encuenta el elemento en el array que coincide con el indicado y devuelve su posición. */
/** Si no lo encuentra, devuelve -1 */
public Integer posicionTabla(Integer valor) {
for (int i = 0; i < tabla.length; i++) {
if (tabla[i] == valor) {
return i;
}
}
return -1;
}

Escribe un Junit Test Case para probar:

1. El método sumaTabla
2. El método mayorTabla
3. El método posicionTabla

Cada uno con las pruebas que consideres.

También podría gustarte