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)
|
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. |
|
|