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
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
public ArrayFracciones(int fracciones) {
this.array = new Fraccion[fracciones];
}
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 (https://es.wikipedia.org/wiki/Mary_Jane_Kelly)
empecemos por trozos
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;
}
}
}
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 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