# JUnit Problem mit AssertionFailedError



## Muffelhs (1. Apr 2009)

Hallo,

ich soll eine TestKlasse mit JUnit überprüfen.
Es werden Brüche angegeben. Diese sollen auf 0 getestet werden oder verglichen werden etc.

Im Konstruktor werden die Brüch gekürzt.

Wenn ein Bruch angegeben wird zb. Bruch b1 = new Bruch(-1/2);
und                                            Bruch b2 = new Bruch(50/-100);
dann wird b2 im Konstruktor sofort auf -1/2 gekürzt.

Nachdem erstellen der Objekte wird abgefragt.

assertTrue("Die Brüche sind gleich sein",b1.equals(b2));

wenn ich mit JUnit die Klasse starte dann kommt die fehlermeldung:

1) testeEquals(BruchTest)junit.framework.AssertionFailedError: Die Brueche muessten gleich sein
  at BruchTest.testeEquals(BruchTest.java:118) 
(--> Die Zeile : assertTrue("Die Brüche sind gleich sein",b1.equals(b2))
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)


ich habe die Brüche checken lassen. 
b1.zaehler = -1;
b1.nenner = 2;
b2.zaehler = -1;
b2.nenner = 2;


wo kann der Fehler sein?

MfG


----------



## Ebenius (1. Apr 2009)

Wie sieht denn die Implementierung der Methode equals(Object) in der Klasse Bruch aus? Wenn es in Bruch (und deren Ableitungen über Object) keine Implementierung von equals(Object) gibt, dann kann's nicht funktionieren.

Hier gibt's einige Informationen über Object als Basisklasse, unter anderem bzgl. equals(Object) und hashCode(), zu lesen: Sun Java Tutorials: Object as a Superclass,

BTW: Du sollst natürlich nicht eine TestKlasse mit JUnit überprüfen, sondern eine Klasse mit JUnit prüfen. Dazu verwendet man die Testklasse.

Ebenius


----------



## maki (1. Apr 2009)

```
assertTrue("Die Brüche sind gleich sein",b1.equals(b2));
```
Besser:

```
assertEquals("Die Brüche sind nicht gleich", b1, b2);
```
Das Problem wird wohl die equals Methode sein with Ebenius sagte.


----------

