Autor Tema: Refactorizar y probar en java un codigo  (Leído 4911 veces)

Tuplado

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 10
    • Ver Perfil
Refactorizar y probar en java un codigo
« en: 14 de Octubre 2012, 15:35 »
Me gustaría saber como se refactoriza y se prueba este trozo de código.

Código: [Seleccionar]
public class Forma {
public static final int CUADRADO = 1;
public static final int CIRCULO = 2;
public static final int TRIANGULO_RECTO = 3;
private int tipoForma;
private double size;
public Forma(int tipoForma, double size) {
this.tipoForma = tipoForma;
this.size = size;
}
// ... other methods ...
public double area() {
switch (tipoForma) {
case CUADRADO: return size*size;
case CIRCULO: return Math.PI*size*size/4.0;
case TRIANGULO_RECTO: return size*size/2.0;
}
return 0;
}
}



Muchas gracias de antemano.
« Última modificación: 20 de Septiembre 2014, 18:49 por Alex Rodríguez »

nosferacento

  • Moderador Global
  • Avanzado
  • *******
  • Mensajes: 443
    • Ver Perfil
Re:Visualizar y probar en java un codigo
« Respuesta #1 en: 14 de Octubre 2012, 21:29 »
¿A qué te refieres con refactorizar? Refactorizar suele aludir a reordenar el código, pero esto suele hacerse con algún fin. ¿Qué fin es el que persigues? Por ejemplo podríamos refactorizar empleando if ... en lugar de switch, pero se supone que si hacemos esto es buscando algo ¿qué buscas? Otra forma de refactorizar sería definir cuadrado, circulo y triangulo_recto como subclases de forma. Esto sería bastante lógico y adecuado a la programación orientada a objetos, ya que usaríamos herencia. Esta sería una refactorización que yo probablemente haría, pero no entiendo bien qué es lo que buscas.

Y respecto a las pruebas, a la hora de probar tienes que definir qué quieres probar. Por ejemplo, podríamos querer probar distintas cosas:

a) Que se pueden crear objetos de tipo Forma
b) Que se pueden crear objetos de tipo Forma cuyo atributo tipoForma sea 1
c) Que se pueden crear objetos de tipo Forma cuyo atributo tipoForma sea 2
d) Que se pueden crear objetos de tipo Forma cuyo atributo tipoForma sea 3
e) Que el cálculo de área para un objeto de tipo Forma cuyo atributo tipoForma es CUADRADO devuelve un valor correcto
f) Que el cálculo de área para un objeto de tipo Forma cuyo atributo tipoForma es CIRCULO devuelve un valor correcto
g) Que el cálculo de área para un objeto de tipo Forma cuyo atributo tipoForma es TRIANGULO_RECTO devuelve un valor correcto

Si vas a refactorizar lo lógico es primero refactorizar y luego plantear las pruebas.

Para plantear las pruebas, lo primero que tienes que saber es qué quieres probar.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".