Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » OO Programmierung » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 10 Beiträge
neuling96

Ich habe doch

public MockHausTest (MockGeschenkTest[] x, MockGeschenkTest [] y){

und übergebe
MockGeschenkTest []z = {w,p};
MockHausTest h = new MockHausTest(z,z);

dürfte das nicht gehen?


Im Anhang eine die Datei (in eclipse)

Dateianhang:
zip JavaGrinch.zip (8 KB, 498 mal heruntergeladen)
eulerscheZahl

Könntest du den kompletten Code bereitstellen (bevorzugt als .zip)?
Ich habe keine Lust, die alten Beiträge nach dem jeweils neuesten Code einer Klasse durchzugehen, zumal der Code ohnehin nicht vollständig ist (MockHausTest(z,z) wird nicht gehen, weil es keinen Konstruktor mit diesen Argumenten gibt).

Und ein super(); kannst du dir sparen, wenn du keine Parameter übergibst.
neuling96

Gibt es eine Möglichkeit die Methoden von Grinch einfach zutesten?
neuling96

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
 public static class MockHausTest  {
	
	private MockGeschenkTest[] baum; // Geschenke unter dem Baum
	private MockGeschenkTest[] schrank; // Geschenke im Schrank
	private MockGeschenkTest[] tisch;
	 // Geschenke auf dem Tisch
	
	public MockHausTest (MockGeschenkTest[] x, MockGeschenkTest [] y){
		
	this.baum= x;
	this.schrank=y;
	}




code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:

 @Test
		public void testAusraeumen() {
		MockGeschenkTest w = new MockGeschenkTest(1);
		MockGeschenkTest p = new MockGeschenkTest(2);
		
		MockGeschenkTest []z = {w,p};
		MockHausTest h = new MockHausTest(z,z);
			MockGeschenkTest[] y=  h.ausraeumen();
		 
			MockGeschenkTest [] za = {w,p,w,p};
			
			assertArrayEquals(y, za);
		}

}




ok damit scheint es zu funktionieren .

Meine Frage, wäre geht es einfacher?
neuling96

Ich möchte einen Junit Test durchführen (noch nie zuvor gemacht) für die Klasse Haus und deren Methoden.

Die Schwierigkeit besteht daran, dass Haus zufällig erstellt wird und somit das überprüfen der einzelnen Methode erschwert, also versuch ich mit der Mock Implementierung.


Hier der erste versuch

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:

import static org.junit.Assert.*;

import org.junit.Test;


public class HausTest {
  public static class MockGeschenkTest extends Geschenk {
	  public int groeße;
	
	 public MockGeschenkTest ( int x) {
		 super();
		 this.groeße=x;
	 }
  }
	 public static class MockHausTest extends Haus {
	
	private MockGeschenkTest[] baum={new MockGeschenkTest(1),new MockGeschenkTest(2)} ; // Geschenke unter dem Baum
	private MockGeschenkTest[] schrank={new MockGeschenkTest(2),new MockGeschenkTest(3)}; // Geschenke im Schrank
	private MockGeschenkTest[] tisch={new MockGeschenkTest(2),new MockGeschenkTest(3)};
	 // Geschenke auf dem Tisch
	
	public MockHausTest (){
		super();
	}
	public int anzahlGeschenke() {
		return baum.length + schrank.length + tisch.length;
	}
	
	@Test
	public void testAnzahlGeschenke() {
		MockHausTest h = new MockHausTest();
		assertEquals(6,h.anzahlGeschenke());
	}
	
	public MockGeschenkTest[]  ausraeumen() { 
		MockGeschenkTest[] klau = new MockGeschenkTest[baum.length + schrank.length + tisch.length];
		for (int i = 0; i < baum.length; i++) {
			klau[i] = baum[i];
		}
		for (int y = 0; y < schrank.length; y++){
			klau[y + baum.length] = schrank[y];
		}
		for (int z = 0; z < tisch.length; z++){
			klau[z + schrank.length + baum.length] = tisch[z];
		}
		baum = null;
		schrank = null;
		tisch = null;
		return klau;
	}
}
	
	@Test
	public void testAusraeumen() {
		MockHausTest h = new MockHausTest();
		MockGeschenkTest[] y=  h.ausraeumen();
		MockGeschenkTest [] z = {new MockGeschenkTest(1),new MockGeschenkTest(2),new MockGeschenkTest(2),new MockGeschenkTest(3),new MockGeschenkTest(2),new MockGeschenkTest(3)};
		
		assertArrayEquals(y, z);
	}
	


public void testAusraeumen() {
schlägt fehl ?


y müsste doch gleich z sein?
eulerscheZahl

Ohne main hast zu zwar Funktionen, aber keinen der sie aufruft. Das Programm startet dann einfach nicht.

Wenn du auf ein Array zugreifen kannst, kannst du auch die Länge abfragen.

Gilt auch für das Haus, muss aber heißen stadt[h].ausraeumen().length
neuling96

sry, dass ich öfter Sachen nochmal fragen muss, aber

public class Main {
public static void main(String[]args)

wie erstellt man eine main??

2tes
stadt[h].baum habe ich zugriff auf den baum array von stadt[h], aber geht auch der
befehl stadt[h].baum.length?

stadt[h].ausraeumen.length // geht diese Befehl durch?
eulerscheZahl

Das ist richtig. Aber 0 ist nicht null. 0 ist eine Zahl, null sagt, dass das Objekt nicht exisitert.
neuling96

if (geklauteGeschenke[i] != null)

was ist der unterschied zwischen

if (!(geklauteGeschenke[i]==0))

und

if (!(geklauteGeschenke[i]==null))



ich dachte dabei !(a==b) bedeutete das gleiche wie a!=b
eulerscheZahl

Du kannst auch auf das Gewicht zugreifen, aber du musst jedes Gewicht einzeln wieder, nicht den ganzen Sack auf einmal.

In C# geht das mit int sum = geschenke.Select (x => x.gewicht).Sum ();, aber in Java ist mir da nichts bekannt.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
public int inventur() {
    int anzahl = 0;
    int gesamtgewicht = 0;
    for (int i = 0; i < geklauteGeschenke.length; i++) {
        if (geklauteGeschenke[i] != null) {
            anzahl++;
            gesamtgewicht += geklauteGeschenke[i].gewicht;
        }
    }
    System.out.println("Anzahl: " + anzahl);
    System.out.println ("Gesamtgewicht: " + gesamtgewicht);
}
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.