Versuch für tests

main
Laura Kalkbrenner 2025-12-15 11:50:55 +01:00
parent 40d2da76ef
commit 53acfa0eab
5 changed files with 206 additions and 13 deletions

View File

@ -291,4 +291,149 @@ Wenn du möchtest, erkläre ich dir auch:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
(4) -------->durch die Seite auf Before gekommen (4) -------->durch die Seite auf Before gekommen
https://gist.github.com/samueltcsantos/2089ec68875f6f783a71 https://gist.github.com/samueltcsantos/2089ec68875f6f783a71
https://www.geeksforgeeks.org/advance-java/before-vs-beforeclass-vs-beforeeach-vs-beforeall-in-junit/ https://www.geeksforgeeks.org/advance-java/before-vs-beforeclass-vs-beforeeach-vs-beforeall-in-junit/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
frage:
warum ist meine Artikelliste nicht gefüllt ??? @Test
void TestProdukthinzufügen() throws FileNotFoundException {
Warenkorb warenkorb = new Warenkorb(produktListe);
warenkorb.produktHinzufügen(p1,40);
warenkorb.produktHinzufügen(p2,3);
warenkorb.produktHinzufügen(p3,500);
warenkorb.produktHinzufügen(p4,1);
warenkorb.produktHinzufügen(p5,2);
warenkorb.produktHinzufügen(p6,10);
warenkorb.produktHinzufügen(p7,5);
assertEquals(7,Artikel.size());
}
}
A:
**Deine `Artikel`-Liste in der Testklasse ist eine ANDERE Liste als die im Warenkorb!**
**Das Problem in deinem Code:**
```java
class WarenkorbTest {
// Das ist eine SEPARATE Liste, nicht die vom Warenkorb!
ArrayList<WarenkorbArtikel> Artikel = new ArrayList<>();
@Test
void TestProdukthinzufügen() throws FileNotFoundException {
Warenkorb warenkorb = new Warenkorb(produktListe);
// Diese Methoden füllen warenkorb.Artikel (nicht this.Artikel!)
warenkorb.produktHinzufügen(p1,40);
// ...
// Hier prüfst du die FALSCHER Liste!
assertEquals(7, Artikel.size()); // this.Artikel ist immer noch leer!
}
}
```
**Es gibt zwei verschiedene `Artikel`-Listen:**
1. **`warenkorb.Artikel`** - Die echte Liste im Warenkorb (wird gefüllt)
2. **`this.Artikel`** - Deine Test-Feld-Liste (bleibt leer)
**Lösung 1: Teste die richtige Liste:**
```java
@Test
void TestProdukthinzufügen() throws FileNotFoundException {
Warenkorb warenkorb = new Warenkorb(produktListe);
warenkorb.produktHinzufügen(p1,40);
warenkorb.produktHinzufügen(p2,3);
warenkorb.produktHinzufügen(p3,500);
warenkorb.produktHinzufügen(p4,1);
warenkorb.produktHinzufügen(p5,2);
warenkorb.produktHinzufügen(p6,10);
warenkorb.produktHinzufügen(p7,5);
// RICHTIG: Die Liste aus dem Warenkorb holen!
assertEquals(7, warenkorb.ÜbertrageArtikel().size());
}
```
**Lösung 2: Entferne die falsche Artikel-Liste komplett:**
```java
class WarenkorbTest {
// ENTFERNEN DIESE ZEILE:
// ArrayList<WarenkorbArtikel> Artikel = new ArrayList<>();
// Nur diese behalten:
ArrayList<Produkt> produktListe = new ArrayList<>();
@Test
void TestProdukthinzufügen() throws FileNotFoundException {
// ... dein Testcode
assertEquals(7, warenkorb.ÜbertrageArtikel().size()); // ✓
}
}
```
**Debug-Code um es zu sehen:**
```java
@Test
void TestProdukthinzufügen() throws FileNotFoundException {
Warenkorb warenkorb = new Warenkorb(produktListe);
System.out.println("Vorher - warenkorb Artikel: " + warenkorb.ÜbertrageArtikel().size());
System.out.println("Vorher - this.Artikel: " + this.Artikel.size());
warenkorb.produktHinzufügen(p1,40);
System.out.println("Nachher - warenkorb Artikel: " + warenkorb.ÜbertrageArtikel().size());
System.out.println("Nachher - this.Artikel: " + this.Artikel.size());
// Ausgabe wird sein:
// Vorher - warenkorb Artikel: 0
// Vorher - this.Artikel: 0
// Nachher - warenkorb Artikel: 1 ← WIRD GEFÜLLT!
// Nachher - this.Artikel: 0 ← BLEIBT LEER!
}
```
**Warum ist `this.Artikel` leer?**
- `warenkorb.produktHinzufügen()` füllt nur `warenkorb.Artikel`
- `this.Artikel` ist eine komplett andere, unabhängige Liste
- Du hast nie etwas zu `this.Artikel` hinzugefügt
**Richtiger Aufbau deiner Testklasse:**
```java
class WarenkorbTest {
// NUR Produkte und Produktliste
Produkt p1, p2, p3, p4, p5, p6, p7;
ArrayList<Produkt> produktListe;
@BeforeEach
void setUp() {
// Produkte initialisieren
p1 = new Produkt(9, "Wasser", 0.25, 0.7, 19, 50);
// ... andere Produkte
// Produktliste füllen
produktListe = new ArrayList<>();
produktListe.add(p1);
// ... andere Produkte hinzufügen
// KEINE Artikel-Liste hier!
}
@Test
void TestProdukthinzufügen() throws FileNotFoundException {
Warenkorb warenkorb = new Warenkorb(produktListe);
// Produkte hinzufügen
warenkorb.produktHinzufügen(p1,40);
// ...
// Teste die RICHTIGE Liste
assertEquals(7, warenkorb.ÜbertrageArtikel().size());
}
}
```
**Zusammenfassung:** Du testest die falsche Liste! Ändere `Artikel.size()` zu `warenkorb.ÜbertrageArtikel().size()`

View File

@ -36,8 +36,8 @@ public class Warenkorb {
produkte.get(i).Bestand -= Menge; produkte.get(i).Bestand -= Menge;
for (int j = 0; j < Artikel.size(); j++) { for (int j = 0; j < Artikel.size(); j++) {
if (p.ID == Artikel.get(j).produkt.ID) { if (p.ID == Artikel.get(j).produkt.ID) {
Artikel.get(j).produkt.Bestand += Menge; Artikel.get(j).Menge += Menge;
break; return;
} }

View File

@ -16,7 +16,7 @@ public class WarenkorbArtikel {
public String toString() { public String toString() {
return "Produkt: " + produkt + ", Menge: " + Menge +", Brutto-Preis insgesamt:" +neuPreis +" davon Mwst: "+ produkt.mwstSatz*Menge; //Mit KI siehe (1) return "Produkt: " + produkt + ", Menge: " + Menge +", Brutto-Preis insgesamt:" +neuPreis +" davon Mwst: "+ produkt.mwstSatz*Menge; //Mit KI siehe (1)
} }
public double berechneGesamtPreis(){ public static double berechneGesamtPreis(){
if(Menge!=0){ if(Menge!=0){
neuPreis= produkt.bruttopreis*Menge ;} neuPreis= produkt.bruttopreis*Menge ;}
else else

View File

@ -0,0 +1,25 @@
package pack;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
class WarenkorbArtikelTest {
Produkt p1 = new Produkt(9, "Wasser", 0.25,0.7, 19,50 );
Produkt p2 = new Produkt(10,"Bücher", 1.5, 20.99,7,9);
Produkt p3= new Produkt( 23,"1 cent Bonbon",0.001,0.01,7,1000);
Produkt p4 = new Produkt(27,"Auto",5000,25000,19,3);
Produkt p5= new Produkt(15,"Wein",0.9,5.00,19,9);
Produkt p6 = new Produkt(16,"Kaugummi",0.002,0.98,7,10);
Produkt p7= new Produkt(18,"EuroSchein",0.002,100,5,10);
WarenkorbArtikel w1= new WarenkorbArtikel(p1,2);
WarenkorbArtikel w2= new WarenkorbArtikel(p3,500);
WarenkorbArtikel w3= new WarenkorbArtikel(p4,0);
WarenkorbArtikel war;
}@Test
void TestBerechneGPreis(){
// assertEquals(1.66,WarenkorbArtikel.berechneGesamtPreis(w1) );
}

View File

@ -4,6 +4,7 @@ import org.junit.Before;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import java.io.FileNotFoundException;
import java.util.ArrayList; import java.util.ArrayList;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
@ -17,11 +18,13 @@ class WarenkorbTest {
Produkt p6 = new Produkt(16,"Kaugummi",0.002,0.98,7,10); Produkt p6 = new Produkt(16,"Kaugummi",0.002,0.98,7,10);
Produkt p7= new Produkt(18,"EuroSchein",0.002,100,5,10); Produkt p7= new Produkt(18,"EuroSchein",0.002,100,5,10);
ArrayList<Produkt> produktListe = new ArrayList<>(); ArrayList<Produkt> produktListe = new ArrayList<>();
ArrayList<WarenkorbArtikel> Artikel = new ArrayList<>();
Warenkorb warenkorb = new Warenkorb(produktListe);
@Before @BeforeEach
public void Listeerstellen() { //(4) public void Listeerstellen() throws FileNotFoundException { //(4)
/* for (int i = 0; i < 7; i++) { /* for (int i = 0; i < 7; i++) {
String prod = "p" + "i"; String prod = "p" + "i";
produktListe.add(prod); produktListe.add(prod);
@ -34,18 +37,38 @@ class WarenkorbTest {
produktListe.add(p6); produktListe.add(p6);
produktListe.add(p7); produktListe.add(p7);
assertEquals(7,produktListe.size()); assertEquals(7,produktListe.size());
}
@Test
void TestProdukthinzufügen() {
Warenkorb warenkorb = new Warenkorb(produktListe);
assert
} }
@Test @Test
void TestaufLager(){ public void TestProdukthinzufügen() throws FileNotFoundException {
assert
warenkorb.produktHinzufügen(p1,40);
warenkorb.produktHinzufügen(p2,3);
warenkorb.produktHinzufügen(p3,500);
warenkorb.produktHinzufügen(p4,1);
warenkorb.produktHinzufügen(p5,2);
warenkorb.produktHinzufügen(p6,10);
warenkorb.produktHinzufügen(p7,5);
assertEquals(7,warenkorb.ÜbertrageArtikel().size()); //(5) aber nur die Zeile
} }
@Test
void TestProduktDa() throws FileNotFoundException {
assertEquals(false, warenkorb.ProduktDa(p4.ID,5));
assertEquals(true, warenkorb.ProduktDa(p3.ID,500));
}
@Test
void welchesProdukt() throws FileNotFoundException {
assertEquals(p4, warenkorb.welchesProdukt(27));
assertEquals(null, warenkorb.welchesProdukt(101));
}
@Test
void aufLager() throws FileNotFoundException {
assertEquals(false, warenkorb.aufLager(p4,300));
assertEquals(true, warenkorb.aufLager(p3,200));
}
} }