Hallo habe folgende Aufgabe programmiert:
Frage ist jetzt wie ich mit meinem Code jetzt einen JunitTestCase machen kann? Bitte kann mir einer helfen. Ich sitzt hier schon ewig daran und kapier nicht wie ich das am besten als Test machen kann. Mein Code der getestet werden soll mit JunitTestcase in eclipse:
Frage ist jetzt wie ich mit meinem Code jetzt einen JunitTestCase machen kann? Bitte kann mir einer helfen. Ich sitzt hier schon ewig daran und kapier nicht wie ich das am besten als Test machen kann. Mein Code der getestet werden soll mit JunitTestcase in eclipse:
Java:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
public class TestatProg3{
public double ertragBraeburn = 0;
public double ertragPinkLady =0;
public double avgBraeburn =0;
public double avgPinkLady =0;
private ArrayList<ApfelsorteZelle> AppleData = new ArrayList<ApfelsorteZelle>();
public TestatProg3() {
try {
BufferedReader FileReader = new BufferedReader(new FileReader("D:\\Testat\\testat.csv"));
String zeile = "";
String[] ZeileEins = FileReader.readLine().split(";");
boolean richtigerSyntax = prüfeKorrekteSyntax(ZeileEins);
while (null != (zeile = FileReader.readLine()) && richtigerSyntax)
{
String[] actualRow = zeile.split(";");
if(!searchCellWithVariety(actualRow)) //Zellensuche nach sorte
{
addNewVariety(actualRow); //neue Sorte wird hinzugefügt
}
}
int counter = 0;
while(AppleData.size() > counter)
{
AppleData.get(counter).berechneDurchschnittsertragInDenErsten10JahrenProBaumProSorte();
AppleData.get(counter).berechneDurchschnittsgesamtertragProBaumProSorte();
if(counter == 0)
{
ertragBraeburn=AppleData.get(counter).getGesamtertrag();
avgBraeburn = AppleData.get(counter).getErtragInDenErsten10Jahren();
avgBraeburn = Math.round(100.0*avgBraeburn)/100.0;
ertragBraeburn=Math.round(100.0*ertragBraeburn)/100.0;
}
else if(counter == 1)
{
ertragPinkLady=AppleData.get(counter).getGesamtertrag();
avgPinkLady =AppleData.get(counter).getErtragInDenErsten10Jahren();
avgPinkLady = Math.round(100.0*avgPinkLady)/100.0;
ertragPinkLady =Math.round(100.0*ertragPinkLady)/100.0;
}else
{
System.out.println("");
}
counter++;
}
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
String HtmlTabellenHeader="<h1><i> Informatik III </i></h1><p><u><b>Testat:</b></u> Programmieren III </p>" //website
+ "<table border = 2>"
+ "<tr>"
+ "<th>Apfelsorte</th>"
+ "<th>Gesamtertrag</th> "
+ "<th> Erträge pro Sorte in erste 10 Jahre</th> "
+ "</tr> "
+ "<tr> "
+ "<td>Braeburn </td><td>";
String BraeburnErtrag="</td>"
+ "<td>";
String BraeburnDurchschnitt="</td></tr><tr>"
+ " <td>Pink Lady </td> <td>";
String ErtragPinkLady = "</td><td>";
String DurchschnittPinkLady = "</td> </tr> </table>";
File f = new File ("D:\\Testat\\testat.html");
try
{
BufferedWriter b = new BufferedWriter (new FileWriter (f));
b.write(HtmlTabellenHeader);
b.write (Double.toString(ertragBraeburn));
b.write(BraeburnErtrag);
b.write(Double.toString(avgBraeburn));
b.write(BraeburnDurchschnitt);
b.write(Double.toString(ertragPinkLady));
b.write(ErtragPinkLady);
b.write(Double.toString(avgPinkLady));
b.write(DurchschnittPinkLady);
b.close (); //schließen BufferedWriter
}
catch (IOException e)
{
e.printStackTrace();
}
System.out.println(ertragBraeburn);
System.out.println(ertragPinkLady);
System.out.println(avgBraeburn);
System.out.println(avgPinkLady);
}
private void addNewVariety(String[] actualRow)
{
ApfelsorteZelle neueApfelsorte = new ApfelsorteZelle(actualRow[0], Integer.parseInt(actualRow[1]),
Integer.parseInt(actualRow[2]), Integer.parseInt(actualRow[3]));
AppleData.add(neueApfelsorte);
}
private boolean prüfeKorrekteSyntax(String[] ersteZeile)
{
if(!ersteZeile[0].equals("Sorte") || !ersteZeile[1].equals("Anzahl") || !ersteZeile[2].equals("Alter")
|| !ersteZeile[3].equals("Gesamtertrag")) {
System.out.println("Diese Datei hat falschen Syntax.");
return false;
}
return true;
}
private boolean searchCellWithVariety(String[] actualRow)
{
boolean bereitsVerarbeitet = false;
int nZelle = 0;
while(!bereitsVerarbeitet && !AppleData.isEmpty() && AppleData.size() > nZelle) {
if(AppleData.get(nZelle).getName().equals(actualRow[0])) {
addRow(AppleData.get(nZelle), actualRow);
bereitsVerarbeitet = true;
return true;
}
nZelle++;
}
return false;
}
private void addRow(ApfelsorteZelle apfelsorteZelle, String[] actualRow)
{
apfelsorteZelle.fügeZuGesamtertragHinzu(
Integer.parseInt(actualRow[3]), Integer.parseInt(actualRow[1]));
apfelsorteZelle.fügeZuErtragInDenErsten10JahrenHinzu(
Integer.parseInt(actualRow[3]), Integer.parseInt(actualRow[1]),
Integer.parseInt(actualRow[2]));
}
public class ApfelsorteZelle //Klasse für eigene Arraylsit --> WErte voneinandergetrennt gespeichert
{
int anzahlTeiler = 0;
private String name;
private double gesamtertrag = 0;
private double ertragInDenErsten10Jahren;
public ApfelsorteZelle(String name, int anzahlBäume, int alter, double gesamtertrag)
{
this.name = name;
fügeZuGesamtertragHinzu(gesamtertrag, anzahlBäume);
fügeZuErtragInDenErsten10JahrenHinzu(gesamtertrag, anzahlBäume, alter);
}
public String getName()
{
return name;
}
public double getGesamtertrag()
{
return gesamtertrag;
}
public double getErtragInDenErsten10Jahren()
{
return ertragInDenErsten10Jahren;
}
public void fügeZuGesamtertragHinzu(double zahl, int anzahlBäume)
{
gesamtertrag = gesamtertrag + zahl / anzahlBäume;
anzahlTeiler++;
}
public void fügeZuErtragInDenErsten10JahrenHinzu(double zahl, int anzahlBäume, int alter)
{
if(alter < 10) {
ertragInDenErsten10Jahren = ertragInDenErsten10Jahren + zahl / anzahlBäume;
} else {
ertragInDenErsten10Jahren = ertragInDenErsten10Jahren + zahl / anzahlBäume / alter * 10;
}
}
public void berechneDurchschnittsgesamtertragProBaumProSorte()
{
gesamtertrag = gesamtertrag / anzahlTeiler;
}
public void berechneDurchschnittsertragInDenErsten10JahrenProBaumProSorte()
{
ertragInDenErsten10Jahren = ertragInDenErsten10Jahren / anzahlTeiler;
}
}
}