Bruchrechner Test

Vancrawl

Neues Mitglied
Hallo Ihr :)

Habe hier eine Aufgabe von JAVA und finde leider keinen Ansatz diese zu lösen. :bahnhof:
Es geht um folgendes:

Schreiben Sie ein Programm, das die Prozeduren Ihres Bruchrechner-Programms testet.
• Erstellen Sie ein Programm BruchrechnerTest, das ein Objekt der Klasse Bruchrechner erzeugt.
• Erstellen Sie in diesem Programm zu jeder Ihrer Prozeduren aus „Bruchrechner“ eine Test-Methode, die die Prozedur mit unterschiedlichen Parametern aufruft und das Ergebnis überprüft. Verwenden Sie dazu eine Methode void erwarteGleichheit(…), die zwei (oder vier) Parameter hat und ausgibt, ob die beiden Werte (oder Wertpaare) gleich sind oder nicht.
• Definieren Sie in diesen Methoden jeweils mindestens drei interessante Testfälle, wie negative Werte, sehr große oder sehr kleine Werte und die Null. Probieren Sie, ob Ihr Programm in allen Fällen richtig arbeitet, indem Sie alle Tests automatisch durchführen.

Hier habe ich schon den Bruchrechner:


class Bruchrechner{
static int neuZ;
static int neuN;

public static void main(String[]args){

int z1 = Integer.parseInt(args[1]);
int n1 = Integer.parseInt(args[2]);
int z2 = Integer.parseInt(args[3]);
int n2 = Integer.parseInt(args[4]);

Integer[]zahl = new Integer[4];

zahl[0] = z1;
zahl[1] = n1;
zahl[2] = z2;
zahl[3] = n2;

if(n1 == 0 || n2 == 0 || (args[0].equals("div") && args[3].equals("0"))){
System.out.println("keine division durch null");

}


else{
switch (args[0]){

case "add": Bruchrechner.add(zahl[0],zahl[1],zahl[2],zahl[3]);
break;
case "sub": Bruchrechner.sub(zahl[0],zahl[1],zahl[2],zahl[3]);
break;
case "div": Bruchrechner.div(zahl[0],zahl[1],zahl[2],zahl[3]);
break;
case "mul": Bruchrechner.mul(zahl[0],zahl[1],zahl[2],zahl[3]);
break;
}
}

add(z1, n1, z2, n2);

System.out.println(z1 + "/" + n1 + "/" + " + " + z2 + "/" + n2 + " = " + neuZ + "/" + neuN);
}

static void add(int z1,int n1,int z2,int n2){
neuZ = (z1*n2)+(z2*n1);
neuN = n1*n2;
}
static void sub(int z1,int n1,int z2,int n2){
neuZ = (z1*n2)-(z2*n1);
neuN = n1*n2;
}
static void mul(int z1,int n1,int z2,int n2){
neuZ = z1*z2;
neuN = n1*n2;
}
static void div(int z1,int n1,int z2,int n2){
neuZ = z1*n2;
neuN = n1*z2;
}


}


Kann mir hierzu jemand Tipps geben diese Aufgabe zu meistern?
Danke schonmal ;)

Lg Vancrawl
 

turtle

Top Contributor
Schreiben Sie ein Programm, das die Prozeduren Ihres Bruchrechner-Programms testet.

Das finde ich interessant, weil ICH IMMER beginne erst einen Test zu schreiben und DANACH den Test zum Laufen bringe.

Ich habe auch mal dazu einen kleinen Blog-Eintrag geschrieben. Darin siehst du auch, dass Tests häufig mit jUnit durchgeführt werden. Dort heissen die Funktionen in etwa so assertXXX.
 

gescom

Mitglied
Normalerweise würde man dafür wie schon gesagt JUnit test schreiben, da aber die Vorgabe ist das erwarteteGleichheit() keine Rückgabewert hat, fällt mir gerade nicht ein wie das mit asserts bewerkstelligt werden soll.
Also zunächst wurde ich Bruchrechnen in eine eigene Klasse schreiben, wie auch gefordert. Dann erstellst du dir in der main ein Objekt der Klasse. Die Methode erwarteteGleichheit() bekommt eben zwei Werte und macht eine Ausgabe ob diese gleich sind. Dann hast du eben sowas wie:

Java:
public static void erwarteteGleichheit(Bruchrechnen zahl1, Bruchrechenen zahl2){
 if(zahl1 == zahl2) sysout("Die Zahlen sind gleich ");
 else sysout("Die Zahlen sind es nicht");

}

Bruchrechnen einhalb = new Bruchrechnen(1, 2);
Bruchrechnen eins = new Bruchrechnen(1, 1);
erwarteteGleichheit(eins, einhalb.add(einhalb));

In Bruchrechnen erstellst du eben deine "Bruchzahlen" mit Variablen für Nenner und Zähler, Konstruktor und deinen Methoden. ACHTUNG! Du brauchst auch eine Methode die deine Zahlen vollständig kürzen, da 1/2 ungleich 2/4 ist.
Hoffe das hilft dir etwas weiter.
 

gescom

Mitglied
Java:
assertTrue("erwartete Gleichheit", zahl1.isGleich(zahl2))

Also zunächst muss ich sagen das ich kein erfahrener Programmierer bin und stehe gerade ein bisschen auf dem Schlauch, aber aus Interesse möchte ich doch wissen wie es funktioniert.
Mir ist natürlich bewusst das es wie oben von dir Beschrieben gemacht werden kann, aber nur solange die Methode isGleich auch einen Rückgabewert hat. Die Vorgabe lautetet ja eine Methode zu verwenden void erwarteGleichheit(…) und mir fällt dazu kein Weg ein dieses zu lösen. ( Außer vielleicht kompliziert, erst in eine Datei schreiben, danach mit assert zwei strings vergleichen?!)
 

stg

Top Contributor
Java:
public static void erwarteteGleichheit(Bruchrechnen zahl1, Bruchrechenen zahl2){
 if(zahl1 == zahl2) sysout("Die Zahlen sind gleich ");
 else sysout("Die Zahlen sind es nicht");

}
Mit == prüfst du Objekte auf Identität, nicht auf Gleichheit.

In Bruchrechnen erstellst du eben deine "Bruchzahlen" mit Variablen für Nenner und Zähler, Konstruktor und deinen Methoden. ACHTUNG! Du brauchst auch eine Methode die deine Zahlen vollständig kürzen, da 1/2 ungleich 2/4 ist.
Hoffe das hilft dir etwas weiter.


Nö, man muss nur eine gescheite (sprich sinnvolle) equals()-Implementierung liefern. Als Vorschlag: 2*2 ist gleich 1*4. Funktioniert natürlich in dieser Form nur bei hinreichend kleinen Zahlen. Für den Test als solchen sollte man aber niemals den Zustand der zu testenden Objekte verändern (es sei denn man erzeugt lokal einen Klon oder sonstige Spaß...)
 
Zuletzt bearbeitet:

turtle

Top Contributor
Mein kleines Demo-Beispiel für Test einer Addition:

Java:
	@Test
	public void test() {
		Bruchrechner bruchrechner = new Bruchrechner();
		Bruch resultat = bruchrechner.add(new Bruch(1, 2), new Bruch(3, 4));
		erwarteGleichheit(new Bruch(5, 4), resultat);
	}

	private void erwarteGleichheit(Bruch bruch1, Bruch bruch2) {
		assertTrue("erwartetete Gleichheit", bruch1.equals(bruch2));
	}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
G Java Bruchrechner Addition, Multiplikation... Java Basics - Anfänger-Themen 12
G Bruchrechner programmieren Java Basics - Anfänger-Themen 6
V_Fynn03 Bruchrechner programmieren (2 Klassen) Java Basics - Anfänger-Themen 9
V_Fynn03 Java Bruchrechner programmieren Java Basics - Anfänger-Themen 13
T Bruchrechner Problem Java Basics - Anfänger-Themen 16
H Codeverbesserung, FH-Hausaufgabe | Bruchrechner Java Basics - Anfänger-Themen 5
M Bruchrechner Java Basics - Anfänger-Themen 2
K Operatoren Bruchrechner Java Basics - Anfänger-Themen 16
S Bruchrechner Java Basics - Anfänger-Themen 8
Zrebna Frage zu Test-Driven Development (TDD) Java Basics - Anfänger-Themen 3
W junit.Test not accessible? Java Basics - Anfänger-Themen 4
W Junit-Test (Java) Java Basics - Anfänger-Themen 4
W Testfälle bei Java ( Junit-Test) Java Basics - Anfänger-Themen 3
D Hilfe bei Calculator Test Java Basics - Anfänger-Themen 15
U jUnit 5 Test für eine addMethode Java Basics - Anfänger-Themen 18
M Test auf Exceptions schreiben Java Basics - Anfänger-Themen 11
P Eclipse Karate Framework API Test . Unexpected Error: the trustAnchors parameter must be non-empty Java Basics - Anfänger-Themen 1
I Variable innerhalb Methode: Local variable test defined in an enclosing scope must be final or effectively final Java Basics - Anfänger-Themen 3
A Junit Test für MysqlDataSource JDBC Java Basics - Anfänger-Themen 3
A Test Junit Java Basics - Anfänger-Themen 1
H Junit test Java Basics - Anfänger-Themen 12
P JUnitTest Best Practise (Ein Assert pro Test?) Java Basics - Anfänger-Themen 10
P Methoden JUnit 4 - Test Java Basics - Anfänger-Themen 6
Mr_Kleeblatt Operatoren if (arri[i] != "test.java"&& arri[i] != "test.class") Java Basics - Anfänger-Themen 3
N Fehler bei JUnit Test Java Basics - Anfänger-Themen 5
L Test-Methoden schreiben Java Basics - Anfänger-Themen 13
D Test auf Dopplungen Java Basics - Anfänger-Themen 32
neerual Klassen Wie rufe ich Klassen, die andere Klassen extenden in einer Test Unit auf? Java Basics - Anfänger-Themen 10
B JUnit Test erstellen Java Basics - Anfänger-Themen 6
B zzz.test Java Basics - Anfänger-Themen 13
W Problem bei JUnit Test Aufgabe Java Basics - Anfänger-Themen 15
W JUnit Test und HashCode Java Basics - Anfänger-Themen 14
C Erste Schritte Hexidezimal-Test Java Basics - Anfänger-Themen 2
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
B Palindrom Test mit Junit Java Basics - Anfänger-Themen 23
T Minesweeper Test Java Basics - Anfänger-Themen 2
S Junit Test Java Basics - Anfänger-Themen 2
F Test Java Basics - Anfänger-Themen 12
W Ist das ein legitimer Test? Java Basics - Anfänger-Themen 5
shiroX Methoden JUnit-Test einer void-Methode Java Basics - Anfänger-Themen 4
U Best Practice Datenbereitstellung Unit Test Java Basics - Anfänger-Themen 6
B Binäre Suche - Junit Test Java Basics - Anfänger-Themen 6
B Datentypen Test float und double speichern Zahlen nur ungefähr Java Basics - Anfänger-Themen 4
Z Vererbung Test auf Normalverteilung, Wilcoxon Java Basics - Anfänger-Themen 3
M Assertion NotNull Test Java Basics - Anfänger-Themen 3
S Separate Funktion für JUnit-Test Java Basics - Anfänger-Themen 3
W Test, ob Datei existiert, schlägt fehl Java Basics - Anfänger-Themen 4
T JUnit test failed Java Basics - Anfänger-Themen 3
H Array Test Methode schreiben Java Basics - Anfänger-Themen 3
R JUnit Test mit einer Dateistruktur als Testparameter Java Basics - Anfänger-Themen 3
T Test läuft schief Java Basics - Anfänger-Themen 3
shiroX OOP Array kleinste Zahl mit jUnit test Java Basics - Anfänger-Themen 3
G mache aus Test nach sortieren estt oder java aajv Java Basics - Anfänger-Themen 5
S Code stimmt nicht für vorgegebenen JUnit-Test Java Basics - Anfänger-Themen 2
x22 Java Multiple Choice Test Java Basics - Anfänger-Themen 8
R JUnit Test mit mehrfach ausgeführt Java Basics - Anfänger-Themen 6
B JUnit - Mini-Test Java Basics - Anfänger-Themen 9
T Unterschied zwischen Integrationstest und JUnit test? Java Basics - Anfänger-Themen 12
N Test mit assert Java Basics - Anfänger-Themen 9
Y Junit Test - Testwert ändert sich Java Basics - Anfänger-Themen 12
K Palindrom Test Java Basics - Anfänger-Themen 9
S Performance-/Stress Test für Webanwendung Java Basics - Anfänger-Themen 2
V Mediaplayer - NullPointerException bei Unit-Test Java Basics - Anfänger-Themen 4
H Ich kann mein Java Programm Test.class nicht ausführen Java Basics - Anfänger-Themen 6
H Javabefehl Test Java Basics - Anfänger-Themen 3
S Hilfe zu Java-Programm und JUnit Test!! Java Basics - Anfänger-Themen 5
T JUNit Test IOException Java Basics - Anfänger-Themen 5
H lucas-test Java Basics - Anfänger-Themen 14
P White-Box-Test Verständnisproblem Java Basics - Anfänger-Themen 11
N Methoden Test ob Server vorhanden ist Java Basics - Anfänger-Themen 4
N Test Datei = Bild Java Basics - Anfänger-Themen 5
S Erste Schritte 1. Test Programm Java Basics - Anfänger-Themen 21
Spin JUNIT Test Case - Problem bei testen Java Basics - Anfänger-Themen 2
T brauche HILFE beim Junit test:eek: Java Basics - Anfänger-Themen 11
timbeau JUnit Test Dauer speichern/loggen Java Basics - Anfänger-Themen 16
E Am Mittwoch Test und ich checks überhaupt nich Java Basics - Anfänger-Themen 27
A junit test wann verwendet man "was"? Java Basics - Anfänger-Themen 4
J JUnit Test Java Basics - Anfänger-Themen 2
D Test einer Chipkarte Java Basics - Anfänger-Themen 2
J Problem mit Test-Klasse Java Basics - Anfänger-Themen 4
E Test, ob String in Double umwandelbar ist Java Basics - Anfänger-Themen 3
J Test steht vor der Tür !! Java Basics - Anfänger-Themen 2
X Array nur mit Zahlen (test) Java Basics - Anfänger-Themen 11
Houly JUnit Test Suite anlegen Java Basics - Anfänger-Themen 6
F Primitiver Lucas-Lehmer-Test hängt sich auf Java Basics - Anfänger-Themen 7
M Erster HashMap-test Java Basics - Anfänger-Themen 5
O Test auf JComponent Java Basics - Anfänger-Themen 7
pun Junit Test erkennt Exception nicht.. Java Basics - Anfänger-Themen 14
D C0 und C1 Test nochmal Java Basics - Anfänger-Themen 9
D C0 und C1 Test Java Basics - Anfänger-Themen 3
G BlueJ jUnit Test Java Basics - Anfänger-Themen 6
J Test auf UTF-8 Java Basics - Anfänger-Themen 2
M Wo und wie speich. ich .java und wo den zugehörigen test? Java Basics - Anfänger-Themen 2
Shalimar Test, ob mehr pos. oder neg. Zahlen Java Basics - Anfänger-Themen 3
M test Java Basics - Anfänger-Themen 5
M test Java Basics - Anfänger-Themen 2
M test Java Basics - Anfänger-Themen 10
V Test mit JUnit verbinden Java Basics - Anfänger-Themen 3
M test Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben