Hallo Javabegeisterte!
Ich hoffe, ich hab hier ins richtige Unterforum gepostet...wenn nicht, wars keine Absicht....
Nun zu meinem Problem:
Ich habe einen JUnit Test und muss den dazugehörigen Javacode schreiben, sodass der Test erfolgreich durchläuft.
Der Test sieht so aus:
Die Superklasse Pet sieht so aus:
Ich habe jetzt für jedes Tier eine Klasse erstellt in der mit
angegeben wird, dass sie Subklassen sind.
Meine Dog Klasse sieht z.B. so aus
Nun hab ich das Problem, dass der Test bei der Zeile
einen Fehler ausgibt und zwar
So wie ich das verstehe, wird der vorherige Name immer mit dem nächsten überschrieben, also ist der Name von pet1 nicht mehr Garfield, sondern der des pet3....???:L
Kann mich bitte jemand auf den richtigen Weg führen?
Ich hoffe, ich hab hier ins richtige Unterforum gepostet...wenn nicht, wars keine Absicht....
Nun zu meinem Problem:
Ich habe einen JUnit Test und muss den dazugehörigen Javacode schreiben, sodass der Test erfolgreich durchläuft.
Der Test sieht so aus:
Java:
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class PetsTest {
@Test
public void testPets() {
Pet pet1 = new Cat("Garfield");
Pet pet2 = new Dog("Goofy");
Pet pet3 = new Bird();
pet3.setName("Tweety");
assertEquals("Garfield", pet1.getName());
assertEquals("Goofy", pet2.getName());
assertEquals("Tweety", pet3.getName());
assertEquals("Miaow", pet1.makeSound());
assertEquals("Woof", pet2.makeSound());
assertEquals("Chirp", pet3.makeSound());
}
}
Die Superklasse Pet sieht so aus:
Java:
class Pet {
String name = "not decided yet";
String sound;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String makeSound() {
return sound;
}
}
Ich habe jetzt für jedes Tier eine Klasse erstellt in der mit
Code:
extends
Meine Dog Klasse sieht z.B. so aus
Java:
public class Dog extends Pet{
String sound = "Woof";
Dog(String name) {
System.out.println("I´m a dog, my name is"+" "+name);
}
}
Nun hab ich das Problem, dass der Test bei der Zeile
Code:
assertEquals("Garfield", pet1.getName());
Code:
Testcase: testPets(pets.PetsTest): FAILED
expected:<[Garfield]> but was:<[not decided yet]>
junit.framework.AssertionFailedError: expected:<[Garfield]> but was:<[not decided yet]>
So wie ich das verstehe, wird der vorherige Name immer mit dem nächsten überschrieben, also ist der Name von pet1 nicht mehr Garfield, sondern der des pet3....???:L
Kann mich bitte jemand auf den richtigen Weg führen?
Zuletzt bearbeitet: