Unit tests fehlerhaft bitte um hiiiiilfe :D

TChill

Mitglied
so ich bins nochmal tut mir leid dass ich so viele Fragen habe, doch komme leider selbst nicht drauf was ich hier verändern muss damit meine Unit tests funktionieren ...
Doch nach eurer Hilfe bin ich um einiges schlauer immer ich hoffe ihr könnt mir auch hier helfen ...

Ausgangssituation
Es soll eine Zeitreihe von einer Datenbank (besser: Datenquelle) gelesen werden und der Durchschnitt bzw. der minimale und maximale Wert ermittelt werden. Der Rechner, der die Werte berechnet, muss den Zugriff auf die Datenquelle enthalten.

Das ist meine klasse mit den value und den tagen

Java:
import java.util.Calendar;
import java.util.GregorianCalendar;


public class CL_Data {
Calendar day;
double value;

public CL_Data(Calendar day, double value){
	this.day= day;
	this.value= value;
}
public Calendar getDay(){
	return day;
}
public double getValue(){
	return value;
}
Mein Interface
Java:
public interface IF_DataProvider {
	public List<CL_Data>getData(Calendar start, Calendar stopp);
}
hier die calculator klasse,1) kleine frage am rande wieso implementier ich hier das interface was für ein zweck hat dies ?
Java:
public class CL_Calculator implements IF_DataProvider {

	IF_DataProvider ifd;                      //2) ist das eine constructor injection ? oder was ist bringt bzw ist eine contructor injunction ?
	public CL_Calculator (IF_DataProvider ifd){
		this.ifd = ifd;
	}
	public double calculateAverage(Calendar start, Calendar stopp){
		double result = ifd.getData(start, stopp).get(0).getValue()+ifd.getData(start, stopp).get(1).getValue();
		double day = stopp.DAY_OF_YEAR-start.DAY_OF_YEAR;
		return result/day;
		
		
	}


	public double calculateMin(Calendar start, Calendar stopp) { 
		double min = Integer.MAX_VALUE;
		if(min>ifd.getData(start, stopp).get(0).getValue()){
			min= ifd.getData(start, stopp).get(0).getValue();
		}
		if(min>ifd.getData(start, stopp).get(1).getValue()){  //3) ist dieser schritt überhaupt notwendig ?
			min = ifd.getData(start, stopp).get(1).getValue();
		}
		return min;
	}

	public double calculateMax(Calendar start, Calendar stopp) {
		double max = Double.MIN_VALUE;
		if(max<ifd.getData(start, stopp).get(0).getValue()){
			max = ifd.getData(start, stopp).get(0).getValue();
		}
		if (max<ifd.getData(start, stopp).get(1).getValue()){
			max = ifd.getData(start, stopp).get(1).getValue();
		}
		return max;
	}
Dann hatten wir noch eine vorgegebene testklasse ich schreib mal nur 2 sätze hier raus
Java:
public class CL_TestDataProvider implements IF_DataProvider {

		private List<CL_Data> dataList;
		
		

		public CL_TestDataProvider(){


		dataList = new ArrayList<CL_Data>();
		Calendar day;
		CL_Data entry;

		day = new GregorianCalendar();
		day.set(2013, 4, 1);
		entry = new CL_Data(day, 12.5);
		dataList.add(entry);

		day = new GregorianCalendar();
		day.set(2013, 4, 2);
		entry = new CL_Data(day, 31.4);
		dataList.add(entry);
und hier dann meine unit tests, das if_calculator poste ich mal nicht da es sonst zu viel wird ...
Java:
public class TestCalculator {
	
		private Calendar start;
		private Calendar stop;
		private IF_Calculator calculator;

		@Before
		public void setUp() throws Exception {
			start = new GregorianCalendar();
			stop = new GregorianCalendar();
			calculator = new CL_Calculator(new CL_TestDataProvider()); //der kommilitone hat den schritt so gemacht und bei ihm funktionierts bei mir wird ein cast vom IF_Calculator verlangt ...
		}

		@Test
		public void testCalculateAverage1() {
			start.set(2014, 1, 1);
			stop.set(2014, 1, 3);
			double result = calculator.calculateAverage(start, stop);
			assertEquals(0, result, 0);
		}
Noch im allgemeinen wie oben in der calculator klasse, warum implementier ich das interface, was bringt mir dies ?
und warum benutz ich dann ifd, wenn eigentlich nichts im interface ausser die methode steht .. ???
hab mir auch 2 youtube videos gegeben doch begreif es nicht.
So vielen dank für eure Mühe im Vorraus, weiss es zu schätzen :toll::toll::toll:
 
Zuletzt bearbeitet:

turtle

Top Contributor
Bist du dir sicher mit dem Code?
public class CL_Calculator implements IF_DataProvider
oder doch besser (erscheint mir richtig) ?
Java:
public class CL_Calculator implements IF_Calculator

Und das mit den Interfaces macht man, damit du einfach die Implementierung tauschen kannst.

Für einen Test möchtest du vielleicht nicht immer auf eine Datenbank, sondern auf Daten im Speicher, zugreifen. Dann gibt es die Klasse MemCalculator, die ebenfalls das Interface implementiert, die Daten aber aus dem Speicher liest.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Open Source Projekt mit Unit Tests gesucht Java Basics - Anfänger-Themen 5
J J-Unit Tests Java Basics - Anfänger-Themen 6
J Unit Testing mit vielen Bedingungen - Best Practice? Java Basics - Anfänger-Themen 9
neerual Klassen Wie rufe ich Klassen, die andere Klassen extenden in einer Test Unit auf? Java Basics - Anfänger-Themen 10
U Best Practice Datenbereitstellung Unit Test Java Basics - Anfänger-Themen 6
V Mediaplayer - NullPointerException bei Unit-Test Java Basics - Anfänger-Themen 4
cowabunga1984 Unit-Testing - Welche Testfälle sind relevant? Java Basics - Anfänger-Themen 4
6 Best Practice Feedback zu Service / JUnit Tests Java Basics - Anfänger-Themen 3
M Anfängerfehler - Tests JUnit IntelliJ Java Basics - Anfänger-Themen 24
M Assertions Tests Java Basics - Anfänger-Themen 6
P Probleme mit JUnit-Tests, es kommt was anderes raus als bei manuellen Tests Java Basics - Anfänger-Themen 5
T gradle und tests Java Basics - Anfänger-Themen 1
W JUnit Tests Java Basics - Anfänger-Themen 4
hello_autumn Klassen Anzahl sowie die Anzahl der Junit Tests ermitteln? Java Basics - Anfänger-Themen 8
L JUnit tests in java Java Basics - Anfänger-Themen 5
C JUnit Tests. How to Java Basics - Anfänger-Themen 5
L Junit Tests Java Basics - Anfänger-Themen 10
S Kommt es zu Seiteneffekten wenn man waehrend den laufenden JUnit Tests den Code aendert? Java Basics - Anfänger-Themen 2
M Verständnisfrage zu JUnit Tests und private Methoden Java Basics - Anfänger-Themen 3
G JUnit-Tests im Programmdurchlauf starten Java Basics - Anfänger-Themen 4
M Junit Tests durchführen, die eine Verbindung zu einer Daten erfordern Java Basics - Anfänger-Themen 3
V Frage zu JUnit Tests Java Basics - Anfänger-Themen 3
A String in Double umwandeln mit Tests Java Basics - Anfänger-Themen 3
A JUnit Tests in Jar-Archiv packen Java Basics - Anfänger-Themen 2
M JUNIT tests mit ant script ausführen Java Basics - Anfänger-Themen 4
T Junit Tests Java Basics - Anfänger-Themen 7
W Problem beim erstellen eines Tests Java Basics - Anfänger-Themen 16
M Junit tests gehen nicht Java Basics - Anfänger-Themen 2
F Gleiche JUnit-Tests automatisert mit verschiedenen Methoden ausführen Java Basics - Anfänger-Themen 6
J Einführung in JUnit-Tests Java Basics - Anfänger-Themen 5
T BMI Rechner fehlerhaft Java Basics - Anfänger-Themen 18
I InputStream beim zweiten Mal fehlerhaft Java Basics - Anfänger-Themen 10
E Warum lässt sich eine Klasse nicht starten, wenn eine andere Klasse in dem Modul fehlerhaft ist? Java Basics - Anfänger-Themen 1
U Ausgabe von Dateiinhalt während Programmnutzung fehlerhaft Java Basics - Anfänger-Themen 3
N Erste Schritte Quellcode fehlerhaft Java Basics - Anfänger-Themen 2
F (Eclipse) Beim importieren etwas fehlerhaft bitte um Hilfe :) Java Basics - Anfänger-Themen 3
P Compiler-Fehler if Bedingung fehlerhaft Java Basics - Anfänger-Themen 7
S Simple Rechnung ist fehlerhaft! Java Basics - Anfänger-Themen 13
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
M Double-Ausgabe in JTextField fehlerhaft Java Basics - Anfänger-Themen 2
H Compiler-Fehler NullPointerException bei .length, Konstruktor fehlerhaft? Java Basics - Anfänger-Themen 3
S Methode prüft fehlerhaft nach Eingangsvariable Java Basics - Anfänger-Themen 2
C FileWriter bzw. Reader fehlerhaft Java Basics - Anfänger-Themen 6
D Code Fehlerhaft finde den Fehler nicht. Java Basics - Anfänger-Themen 1
W Erste Schritte Ausgabe ist Fehlerhaft Java Basics - Anfänger-Themen 6
F Erste Schritte IF-Abfrage fehlerhaft Java Basics - Anfänger-Themen 9
Z array ausgabe fehlerhaft Java Basics - Anfänger-Themen 2
U Array Ausgabe fehlerhaft Java Basics - Anfänger-Themen 6
S Java SDK Installiert aber fehlerhaft Java Basics - Anfänger-Themen 5
J HashSet Fehlerhaft Java Basics - Anfänger-Themen 10
N Bit -> Datei -> Bit Fehlerhaft Java Basics - Anfänger-Themen 2
H Methoden werden als fehlerhaft angezeigt Java Basics - Anfänger-Themen 2
M if/while, Ausgabe fehlerhaft! Java Basics - Anfänger-Themen 11
G Key Listener arbeitet Fehlerhaft Java Basics - Anfänger-Themen 6
S wsdl-datei: Generierung fehlerhaft Java Basics - Anfänger-Themen 9
D ClassLoader in der Jar fehlerhaft Java Basics - Anfänger-Themen 3
J Addition von double values fehlerhaft? Java Basics - Anfänger-Themen 5
S Calendar.set Time, Ermittlung der Anzahl Tage fehlerhaft Java Basics - Anfänger-Themen 9
T Java ist auch eine Insel: Beispielprogramm fehlerhaft? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben