JUnit testing

xyt4n

Aktives Mitglied
Hallo,

ich will ein Test machen, aber bekomme ständig eine Fehlermeldung das die methode undefiniert ist. Was mache ich falsch?

Der Code der Klasse:

Java:
package Programmieraufgabe;


public class Programmieraufgabe04Kevin {

	private double[] a;

	public Programmieraufgabe04Kevin(double[] array) {
		a = array;
	}

	public double[] getArray() {
		return a;
	}

	/**
	 * @param a
	 *            Ein Feld mit mind. einem Element
	 * @return true, false alle Elemente paarweise verschieden sind, sonst false
	 */
	public boolean allDifferent() {
		for (int i = 0; i < a.length; i++)
			for (int j = i + 1; j < a.length; j++)
				if (a[i] == a[j])
					return false;
		return true;
	}

	public int countSequences() {
		int count = 0;
		for (int i = 0; i < a.length - 1; i++)
			if (a[i] < a[i + 1])
				count++;
		return count;
	}

	/**
	 * @param a
	 *            Ein Feld von Double mit mind. 1 Element
	 * @return Anzahl der echt aufsteigenden Läufe
	 */
	public int nRuns() {
		int count = 1;
		for (int i = 1; i < a.length; i++)
			if (a[i] <= a[i - 1])
				count++;
		return count;
	}

}

Die Testklasse:

Java:
package Programmieraufgabe;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import junit.framework.TestCase;

import org.junit.Test;

public class TestProgrammieraufgabe04Kevin extends TestCase {

	public TestProgrammieraufgabe04Kevin(String name) {
		super(name);
	}

	public static double[] a1 = { 1 };

	@Test
	public void testProgrammieraufgabe04Kevin() {
		fail("Not yet implemented");
	}

	@Test
	public void testGetArray() {
		fail("Not yet implemented");
	}

	@Test
	public void testAllDifferent() {

		Programmieraufgabe04Kevin array = new Programmieraufgabe04Kevin(a1);
		assertEquals(true, allDifferent()); //undefiniert

	}

	@Test
	public void testCountSequences() {
		fail("Not yet implemented");
	}

	@Test
	public void testNRuns() {
		fail("Not yet implemented");
	}

}
 
Du meinst?:
Java:
assertEquals(true, allDifferent(a1));

Das geht nicht und habe ich schon probiert. Dadurch bekomme ich noch eine weitere Fehlermeldung das es undefiniert sei.
 
:idea:
Java:
Programmieraufgabe04Kevin array = new Programmieraufgabe04Kevin(a1);
assertEquals(true, array.allDifferent());

Ein Getter für ein Array ist meistens keine gute Idee, da so extern (und ungefiltert) jederzeit der Zustand einer Klasse verändert werden kann.
 
So viele Möglichkeiten "array" und "allDifferent" zu kombinieren gibt es nicht. Volvagia wollte dir sagen, dass eines von diesen Konstrukten dich weiterbringt:
Java:
allDifferent.array()
allDifferent(array)
array.allDifferent()
 
Danke euch allen!!

Hab vergessen das man die Methode auf ein Objekt anwendet indem man sie davor schreibt. Ich hab an Klassenabhängigkeit gedacht und nicht an Objektabhängigkeit.
 
als weiterer Tipp: Schreib das "Test" lieber ans Ende der Methode. So kann man Methoden in der Übersicht besser finden als wenn alle mit "test..." anfangen 😉
 

Neue Themen


Zurück
Oben