No encuentro el error, y llevo varios dias para pasar el test

Iniciado por NightForce, 1 Enero 2019, 12:01 PM

0 Miembros y 1 Visitante están viendo este tema.

NightForce

Buenas estoy con un ejercicio de array de objetos, que tiene que pasar un test de JUnit4, pero el error que me da dice que es metodo toString el cual no encuentro ningun fallo. Si alguien puede ejecutarlo y decirme por que falla exactamente lo agradezco, paso los 3 codigos:

Fraccion: que es la clase fraccion con sus metodos suma, simplificar...
https://pastebin.com/qrTjJTj8

ArrayFraccion: La clase de array de objetos de tipo fraccion:
https://pastebin.com/pbpUw5uv

Y el test de JUnit4 que tiene que pasar:
https://pastebin.com/qG8UAvfY


rub'n

Cita de: NightForce en  1 Enero 2019, 12:01 PM
Buenas estoy con un ejercicio de array de objetos, que tiene que pasar un test de JUnit4, pero el error que me da dice que es metodo toString el cual no encuentro ningun fallo. Si alguien puede ejecutarlo y decirme por que falla exactamente lo agradezco, paso los 3 codigos:

Fraccion: que es la clase fraccion con sus metodos suma, simplificar...
https://pastebin.com/qrTjJTj8

ArrayFraccion: La clase de array de objetos de tipo fraccion:
https://pastebin.com/pbpUw5uv

Y el test de JUnit4 que tiene que pasar:
https://pastebin.com/qG8UAvfY




Que tal  dog ?

que te cuesta poner esto ?, o sea el Log ? tienes un NPE aka nullPointerException presente que no estas manejando


Código (java) [Seleccionar]
public ArrayFracciones(int fracciones) {
       this.array = new Fraccion[fracciones];
}



Código (bash) [Seleccionar]

java.lang.NullPointerException
at com.foro.ArrayFraccionesTestJUnit4.testA_ArrayFraccionesComprobarMetodos(ArrayFraccionesTestJUnit4.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)


java.lang.NullPointerException
at com.foro.probarfracciones.ArrayFracciones.setArray(ArrayFracciones.java:32)
at com.foro.ArrayFraccionesTestJUnit4.testB_ArrayFraccionesToStringArray1(ArrayFraccionesTestJUnit4.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)


org.junit.ComparisonFailure:
Expected :ArrayFraccion: [<8/9>, <11/-21>, <1/3>, <1/7>, <7/5>, <11/9>, <-3/13>, ]
Actual   :ArrayFracciones: [<8/9>, <11/-21>, <1/3>, <1/7>, <7/5>, <11/9>, <-3/13>]
<Click to see difference>


at org.junit.Assert.assertEquals(Assert.java:115)
at org.junit.Assert.assertEquals(Assert.java:144)
at com.testjava8.ArrayFraccionesTestJUnit4.testC_ArrayFraccionesToStringArray2(ArrayFraccionesTestJUnit4.java:71)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)


org.junit.ComparisonFailure:
Expected :ArrayFraccion: [<11/3>, <11/-21>, <1/3>, <1/7>, <5/13>, <11/9>, <-3/13>, ]
Actual   :ArrayFracciones: [<11/3>, <11/-21>, <1/3>, <1/7>, <5/13>, <11/9>, <-3/13>]
<Click to see difference>


at org.junit.Assert.assertEquals(Assert.java:115)
at org.junit.Assert.assertEquals(Assert.java:144)
at com.testjava8.ArrayFraccionesTestJUnit4.testD_ArrayFraccionesToStringArray3(ArrayFraccionesTestJUnit4.java:80)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)

null
null
null
null
null
null
null

java.lang.NullPointerException
at com.foro.probarfracciones.Fraccion.sumar(Fraccion.java:63)
at com.foro.probarfracciones.ArrayFracciones.getSumaArray(ArrayFracciones.java:100)
at com.foro.ArrayFraccionesTestJUnit4.testE_ArrayFraccionesEqualsCompareTo(ArrayFraccionesTestJUnit4.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)


Process finished with exit code -1




ok ok, bueno como decía el popular alias Jack the Ripper en inglés, aka Jack el destripador según mato a mas mujeres pero sin rastro, según su ultima victima fue Mary Jane Kelly

empecemos por trozos


Código (java) [Seleccionar]

package com.foro.probarfracciones;

import java.security.SecureRandom;
import java.util.Objects;
import java.util.stream.IntStream;

public class ArrayFracciones implements Comparable<Object> {

   private Fraccion[] array;

   private static final SecureRandom SECURE_RANDOM = new SecureRandom();

   /**
    * hacer una descripcion de este constructor que te servira a ti mismo XD
    *  "cantidadFracciones" sirve para dar solo el tamaño al array de fracciones con 4 posiciones
    * cada posicion debes instanciar un objeto de tipo fraccion dog, porque sino los indices apuntaran a null, y es justo lo que pasa
    * @param cantidadFracciones
    */
   public ArrayFracciones(int cantidadFracciones) {
       Fraccion[] fracciones = new Fraccion[cantidadFracciones];

       /**
        * Recorremos el arrays para llenarlo con numeros aleatorios del 1 al 10
        * creamos la instancia de Francion en cada indice, porque sino apuntara a null, tu en realidad
        * llamabas a este contructor solo asignando el tamaño, pero sin llenar sus posiciones con los objetos de fraccion
        */
       IntStream.range(0 , cantidadFracciones)
               .forEach(e -> fracciones[e] = new Fraccion(getNum(),getNum()));

       this.array = fracciones;
   }

   public static int getNum() {
       return 1 + SECURE_RANDOM.nextInt(11);
   }

   public ArrayFracciones(Fraccion[] array) {

       this.array = array;
   }

   public ArrayFracciones(ArrayFracciones arrayFracciones) {
       this.array = new Fraccion[arrayFracciones.getNumeroElementos()];

       for (short i = 0; i < arrayFracciones.getNumeroElementos(); i++) {
           this.array[i] = arrayFracciones.getValorElemento(i);
       }
   }

   public Fraccion[] getArray() {
       return this.array;
   }

   public int getNumeroElementos() {
       return this.array.length;
   }

   public void setArray(Fraccion fraccion) {
       for (short i = 0; i < this.array.length; i++) {
           this.array[i].setNumerador(fraccion.getNumerador());
           this.array[i].setDenominador(fraccion.getDenominador());
       }
   }

   public Fraccion getValorElemento(int posicion) {
       try {
           return Objects.requireNonNull(this.array[posicion] , () -> "array nulo ?");
       } catch (ArrayIndexOutOfBoundsException e) {
           System.out.println("ERROR: Posicion introducida no es valida: "
                   + posicion + ", el array es de: "
                   + this.array.length + " elementos");
           return this.array[0];
       }
   }

   public boolean setValorElemento(int posicion, Fraccion fraccion) {
       try {
           this.array[posicion].setNumerador(fraccion.getNumerador());
           this.array[posicion].setDenominador(fraccion.getDenominador());
       } catch (ArrayIndexOutOfBoundsException e) {
           System.out.println(e.getMessage());
           return false;
       } catch (Exception e) {
           System.out.println(e.getMessage());
           return false;
       }

       return true;
   }

   public Fraccion getMinimo() {
       int fraccionMenor = this.array[0].getNumerador() / this.array[0].getDenominador();
       int posicion = 0;

       for (short i = 1; i < this.array.length; i++) {
           if (fraccionMenor > this.array[i].getNumerador() / this.array[i].getDenominador()) {
               fraccionMenor = this.array[i].getNumerador() / this.array[i].getDenominador();
               posicion = i;
           }
       }

       return this.array[posicion];
   }

   public Fraccion getMaximo() {
       int fraccionMayor = this.array[0].getNumerador() / this.array[0].getDenominador();
       int posicion = 0;

       for (short i = 1; i < this.array.length; i++) {
           if (fraccionMayor < this.array[i].getNumerador() / this.array[i].getDenominador()) {
               fraccionMayor = this.array[i].getNumerador() / this.array[i].getDenominador();
               posicion = i;
           }
       }

       return this.array[posicion];
   }

   public Fraccion getSumaArray() {

       Fraccion fraccionSuma = new Fraccion(21,23);


for (short i = 0; i < this.array.length; i++) {
fraccionSuma = Fraccion.sumar(this.array[i],fraccionSuma);
}


       for (short i = 0; i < this.array.length; i++) {
           fraccionSuma = Fraccion.sumar(fraccionSuma, this.getValorElemento(i));
       }

       return fraccionSuma.simplificar();
   }

   /**
    * Aqui con StringBuilder en tu test JUnit no te dara igual en el Assert nunca, xq debes de manejar aqui varias cosas
    *
    * por ejemplo el eliminar el >, ]  
    *
    * ese espacio con esa coma al *final* puedes hacerlo esta manera
    *
    * @return String
    */
   @Override
   public String toString() {
       String cadena = "ArrayFracciones: [";

       for (short i = 0; i < this.array.length; i++) {
           cadena += "<" + this.array[i].getNumerador() + "/" + this.array[i].getDenominador() + ">, ";
       }
       cadena += "]";

       final StringBuilder stringBuilder = new StringBuilder(cadena);

       //reemplazando la ultima , con delete
       final StringBuilder replace = stringBuilder.delete(cadena.length() -3 , cadena.length());
       replace.append("]");

       return replace.toString();
   }

   @Override
   public boolean equals(Object objeto) {
       Fraccion[] arrayFracciones = (Fraccion[]) objeto;

       for (short i = 0; i < this.array.length; i++) {
           if (this.array[i].getNumerador() == arrayFracciones[i].getNumerador() && this.array[i].getDenominador() == arrayFracciones[i].getDenominador()) {
               return false;
           }
       }

       return true;
   }

   @Override
   public int compareTo(Object objeto) {
       Fraccion[] arrayFracciones = (Fraccion[]) objeto;
       Fraccion fraccionSuma = new Fraccion(0, 1);

       for (short i = 0; i < this.getNumeroElementos(); i++) {
           fraccionSuma = Fraccion.sumar(fraccionSuma, this.getValorElemento(i));
       }

       fraccionSuma.simplificar();

       if (this.equals(objeto)) {
           return 0;
       } else if ((this.getSumaArray().getNumerador() / this.getSumaArray().getDenominador()) > (fraccionSuma.getNumerador() / fraccionSuma.getDenominador())) {
           return -1;
       } else {
           return 1;
       }
   }

}


Código (java) [Seleccionar]
package com.foro.probarfracciones;

public class Fraccion implements Comparable<Object> {

   private int numerador;
   private int denominador;

   public Fraccion() {
       this.numerador = 0;
       this.denominador = 1;
   }

   public Fraccion(int numerador, int denominador) {
       this.setNumerador(numerador);
       this.setDenominador(denominador);
   }

   /**
    * constructor no usado, esos constructores que no usas, pues puedes quitarlos
    * @param fraccion
    */
   public Fraccion(Fraccion fraccion) {
       this.numerador = fraccion.getNumerador();
       this.denominador = fraccion.getDenominador();
   }

   public int getNumerador() {
       return this.numerador;
   }

   public void setNumerador(int numerador) {
       this.numerador = numerador;
   }

   public int getDenominador() {
       return this.denominador;
   }

   public void setDenominador(int denominador) {
       this.denominador = denominador;
   }

   @Override
   public String toString() {
       return this.numerador + "/" + this.denominador;
   }

   public boolean equals(Fraccion fraccion) {
       if (this.numerador == fraccion.denominador && this.denominador == fraccion.denominador) {
           return true;
       } else {
           return false;
       }
   }

   public Fraccion sumar(Fraccion fraccion) {
       Fraccion fraccionResultante = new Fraccion();

       fraccionResultante.denominador = mcd(this.denominador, fraccion.denominador);
       fraccionResultante.numerador = (this.numerador * (fraccionResultante.denominador / this.denominador)) + (fraccion.numerador * (fraccionResultante.denominador / fraccion.denominador));

       return fraccionResultante;
   }

   public static Fraccion sumar(Fraccion fraccionA, Fraccion fraccionB) {
       Fraccion fraccionResultante = new Fraccion();

       fraccionResultante.denominador = mcd(fraccionA.denominador, fraccionB.denominador);
       fraccionResultante.numerador = (fraccionA.numerador * (fraccionResultante.denominador / fraccionA.denominador)) + (fraccionB.numerador * (fraccionResultante.denominador / fraccionB.denominador));

       return fraccionResultante;
   }

   public Fraccion restar(Fraccion fraccion) {
       Fraccion fraccionResultante = new Fraccion();
       fraccionResultante.denominador = mcd(this.denominador, fraccion.denominador);
       fraccionResultante.numerador = (this.numerador * (fraccionResultante.denominador / this.denominador)) - (fraccion.numerador * (fraccionResultante.denominador / fraccion.denominador));

       return fraccionResultante;
   }

   public Fraccion multiplicar(Fraccion fraccion) {
       Fraccion fraccionResultante = new Fraccion();

       fraccionResultante.numerador = this.numerador * fraccion.denominador;
       fraccionResultante.denominador = this.denominador * fraccion.denominador;

       return fraccionResultante;
   }

   public Fraccion dividir(Fraccion fraccion) {
       Fraccion fraccionResultante = new Fraccion();

       fraccionResultante.numerador = this.numerador * fraccion.denominador;
       fraccionResultante.denominador = this.denominador * fraccion.numerador;

       return fraccionResultante;
   }

   private static int mcd(int u, int v) {
       Math.abs(u);
       Math.abs(v);

       if (v == 0) {
           return u;
       } else {
           return mcd(v, u % v);
       }
   }

   public Fraccion simplificar() {
       int dividir = Fraccion.mcd(this.numerador, this.denominador);
       this.numerador /= dividir;
       this.denominador /= dividir;
       return this;
   }

   @Override
   public int compareTo(Object objeto) {
       Fraccion fraccion = (Fraccion) objeto;
       double numerador = this.getNumerador();
       double denominador = this.getDenominador();
       double resultadoFraccion1 = numerador / denominador;
       double resultadoFraccion2 = 0.0;

       numerador = fraccion.getNumerador();
       denominador = fraccion.getDenominador();
       resultadoFraccion2 = numerador / denominador;


       if (resultadoFraccion1 == resultadoFraccion2) {
           return 0;
       } else {
           if (resultadoFraccion1 < resultadoFraccion2) {
               return 1;
           } else {
               return -1;
           }
       }

   }

}



Actual log del JUnit


Código (bash) [Seleccionar]
java.lang.AssertionError: Error: El valor del elemento [2] del array1 deberia ser 1/1 y es 2/9

at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.assertTrue(Assert.java:41)
at com.testjava8.ArrayFraccionesTestJUnit4.testA_ArrayFraccionesComprobarMetodos(ArrayFraccionesTestJUnit4.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)


java.lang.AssertionError: Error: El valor suma del array4 deberia ser 617/140 y es 0/1

at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.assertTrue(Assert.java:41)
at com.testjava8.ArrayFraccionesTestJUnit4.testE_ArrayFraccionesEqualsCompareTo(ArrayFraccionesTestJUnit4.java:103)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)


Process finished with exit code -1


como crees que hice eso? depurando con el IDE , lo primero que me di cuenta fue el NPE, tu también puedes hacerlo


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen