Versuch für tests
parent
40d2da76ef
commit
53acfa0eab
145
Shop/src/Quelle
145
Shop/src/Quelle
|
|
@ -292,3 +292,148 @@ Wenn du möchtest, erkläre ich dir auch:
|
|||
(4) -------->durch die Seite auf Before gekommen
|
||||
https://gist.github.com/samueltcsantos/2089ec68875f6f783a71
|
||||
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()`
|
||||
|
|
@ -36,8 +36,8 @@ public class Warenkorb {
|
|||
produkte.get(i).Bestand -= Menge;
|
||||
for (int j = 0; j < Artikel.size(); j++) {
|
||||
if (p.ID == Artikel.get(j).produkt.ID) {
|
||||
Artikel.get(j).produkt.Bestand += Menge;
|
||||
break;
|
||||
Artikel.get(j).Menge += Menge;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ public class WarenkorbArtikel {
|
|||
public String toString() {
|
||||
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){
|
||||
neuPreis= produkt.bruttopreis*Menge ;}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -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) );
|
||||
|
||||
}
|
||||
|
|
@ -4,6 +4,7 @@ import org.junit.Before;
|
|||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.util.ArrayList;
|
||||
|
||||
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 p7= new Produkt(18,"EuroSchein",0.002,100,5,10);
|
||||
ArrayList<Produkt> produktListe = new ArrayList<>();
|
||||
ArrayList<WarenkorbArtikel> Artikel = new ArrayList<>();
|
||||
Warenkorb warenkorb = new Warenkorb(produktListe);
|
||||
|
||||
|
||||
|
||||
@Before
|
||||
public void Listeerstellen() { //(4)
|
||||
@BeforeEach
|
||||
public void Listeerstellen() throws FileNotFoundException { //(4)
|
||||
/* for (int i = 0; i < 7; i++) {
|
||||
String prod = "p" + "i";
|
||||
produktListe.add(prod);
|
||||
|
|
@ -34,18 +37,38 @@ class WarenkorbTest {
|
|||
produktListe.add(p6);
|
||||
produktListe.add(p7);
|
||||
assertEquals(7,produktListe.size());
|
||||
}
|
||||
@Test
|
||||
void TestProdukthinzufügen() {
|
||||
Warenkorb warenkorb = new Warenkorb(produktListe);
|
||||
assert
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Test
|
||||
void TestaufLager(){
|
||||
assert
|
||||
public void TestProdukthinzufügen() throws FileNotFoundException {
|
||||
|
||||
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));
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue