Vergleich der Daten mit JUnit Tests

Hallo, ich bin neu auf der Seite und habe ein Problem mit meiner Anwendung mit JUnit-Tests. Mein Problem ist wenn ich versuche zu vergleichen, die Datum-Methode mit sich es schlägt immer fehl. Ich druckte das Date-Objekt in dem test, um zu sehen, das problem und am Ende immer mit dem Namen des Pakets und zufälligen Buchstaben. Hier ist der Date-Konstruktor:

public class Date
{
SimpleDateFormat dformat = new SimpleDateFormat("dd-MM-yyyy");

private int day;
private int month;
private int year;

public Date() 
{
    String today;
    Calendar present = Calendar.getInstance();

    day = present.get(Calendar.DAY_OF_MONTH);
    month = present.get(Calendar.MONTH);
    year = present.get(Calendar.YEAR);

    present.setLenient(false);
    present.set(year, month - 1, day, 0, 0);

    today = dformat.format(present.getTime());
    System.out.println(today);
}

Hier ist mein test:

@Test 
public void currentDay()
{
    Date current = new Date();
    System.out.println(current);
    assertEquals("today:", current, new Date());
}

Doch das Ergebnis schlägt immer fehl und ich bekomme etwas, das auf den Linien von:

comp.work.wk.Date@d3ade7

Jede mögliche Hilfe würde geschätzt.

Erster Vorschlag: geben Sie nicht Ihre eigenen Klassen, die dieselben Namen wie diejenigen in java.util.
Nächste Vorschlag: wenn du gehst, zu behaupten, dass zwei verschiedene Objekte gleich sind, müssen Sie überschreiben equals (und hashCode für geistige Gesundheit).
Nächste Vorschlag: wenn Sie möchten, eine anständige string-Darstellung, überschreiben toString.
Wenn Sie die Joda-Time - Bibliothek statt der lästigen java.util.Date & java.util.Calendar Klassen, dann alle drei von Jon Skeet ist klug Vorschläge wäre gelöst.

InformationsquelleAutor user3276602 | 2014-02-05

Schreibe einen Kommentar