Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo Java Forum Member!
Ich beschäftige mich zurzeit mit Objektarrays und möchte zu meinen Projekt eine Testklasse anfertigen, doch dies gelingt mir nicht.
Die Testklasse soll Methoden aus der Verwaltung mit den eingefügten Objektarrays aus der Klasse Person durchführen.
Bei meiner Testklasse habe ich nun mit 3 Random Methoden den jeweiligen Personen Daten zugewiesen, doch wie erstelle ich nun in der Testklasse die Verwaltung, und füge diese Personen ein? :O
Hiereinmal meine testklasse:
Java:
public class TestKlasse
{
private PersonenVerwalten variable; // ---> Wie füge ich hier die Personen ein
private Person [ ] array;
public TestKlasse()
{
array = new Person [10];
for(int i = 0; i < 6; i++) // Hälfte füllen
{
array[i].setName(stringZufall(10));
array[i].setAlter(alterZufall(99));
array[i].setWeiblich(weiblichZufall());
}
}
private String stringZufall(int l)
{
String s;
int [] array = new int[l];
char[] array1 = new char[l];
for(int i = 0; i < array.length; i++)
{
array[i] = (int) ((Math.random()*25)+65);
array1[i] = (char)array[i];
}
s = new String(array1);
return s;
}
private int alterZufall(int l)
{
int x = (int) ((Math.random()*l)+1);
return x;
}
private boolean weiblichZufall()
{
int x = (int) ((Math.random()*2)+1);
if(x==1)
{
return true;
}
else
{
return false;
}
}
}
mal davon abgesehn ist in deinem Konstruktor ein Fehler:
Java:
array = new Person [10];
for(int i = 0; i < 6; i++) // Hälfte füllen
{
array[i] = new Person(); // bzw eben der gewünschte konstruktor
array[i].setName(stringZufall(10));
array[i].setAlter(alterZufall(99));
array[i].setWeiblich(weiblichZufall());
}
Der Konstruktor ist richtig... PersonenVerwalten is die Klasse in der Personen via Objektarray(Assotation) eingefügt werden und dort dann mit einigen Methoden kontrolliert geordnert etc werden können
Ohne die API deiner Klasse PersonenVerwalten zu kennen kann man dazu nichts sagen. Woher sollen wir wissen mit welcher Methode da Personen hinzugefügt werden.
Zumal ich an deiner Stelle nicht per Hand irgendwelche Testklassen zusammenbauen würde sondern direkt ein Testframework wie JUnit oder TestNG nehmen würde.
wenn du es besser weisst, frag doch nicht im forum nach, sondern machs selbst . nicht böse gemeint aber wenn ich mich da jetzt nicht total täusche wird da spätestens in der ersten loop eine npe fliegen....
zur PersonenVerwaltung: Übergib das Array doch einfach im Konstruktor an PersonenVerwaltung.
JUnit ist ein sehr guter Rat, möchte noch JMock hinzufügen.
Zufallswerte in Tests sind in 99,9% der Fälle absolut sinnfrei, nebenbei, sehe nicht eine einzige Zeile die irgendwas testet