Junit-test für die Methode boolean

wie kann ich erstellen Sie eine test-Methode mit asseertEquals für die Methode Boolean isEqual(Semester zu semester) mit dem Typ Boolean in der Klasse Semester?

hier ist der code für die Klasse, Semester und den junit-test für die Klasse Semester

Semester

public class Semester {
    private String year;
    private String name;

    public Semester() {
        year = null;
        name = null;
    }

    public Semester(String year, String name) {
        this.year = year;
        this.name = name;
    }

    public boolean isEqual(Semester semestr) {
        return ((semestr.name.equals(this.name)) && (semestr.year
            .equals(this.year)));
    }

    public String getYear() {
        return year;
    }

    public String getName() {
        return name;
    }
}     

SemesterTest

public class SemesterTestCase1 {
    private Semester semster=new Semester("2014","Fall");

    @Test
    public void testIsEqual() {

    }

    @Test
    public void testGetYear() {
        assertEquals("2014",semster.getYear());
    }

    @Test
    public void testGetName() {
        assertEquals("Fall",semster.getName());
    }
}
  • assertEquals(true, actualValue) und assertEquals(false, actualValue) beide arbeiten. Es gibt auch assertTrue(actualValue) und assertFalse(actualValue). Haben Sie einen Blick auf die JavaDoc für die Asserts - class? Wenn diese Optionen nicht funktionieren, bitte lassen Sie uns wissen, warum Sie nicht funktionieren, und noch wichtiger, was man eigentlich zu erreichen versucht.
  • Vergessen Sie nicht, um zu testen, für NullPointerExceptions.
  • Sie überschreiben müssen equals statt der Festlegung Ihrer eigenen isEqual zu verwenden assertEquals.
  • Nicht unbedingt. equals hat sehr spezielle Verträge, die gehorchen müssen, in der Erwägung, dass eine benutzerdefinierte Methode, wie isEqual können tun, was Sie will. Es gibt definitiv Zeiten, die Sie wollen, und nicht die anderen. Zum Beispiel, sagen wir, Sie haben eine Person Objekt mit einer id Bereich sowie name und Geburtsdatum. Es wahrscheinlich sinnvoll für equals nur überprüfen id, wenn man da einen Map<Person, Job> Sie möchten, um Sie eindeutig zu identifizieren, jede person, die von id. Aber Sie können auch prüfen wollen, dass zwei Person Objekte haben alle die gleichen Werte, für die Sie eine benutzerdefinierte isEqual mehr angemessen ist.
  • Können Sie Namen Regeln der equals-Vertrag die benutzerdefinierte Methode verletzen kann? Wenn in Ihrer Domäne können Sie garantieren, dass Person.id ist einzigartig, was ist der Punkt, der compering rest der Felder? Wenn nicht deine Karte wird nicht korrekt funktionieren.
  • Eine benutzerdefinierte Regel kann gegen eine der Regeln für equals, da es definiert seinen eigenen Vertrag. Wahrscheinlich die meisten relevant ist, dass Sie müssen konsistent sein mit hashCode(). Für id Gleichheit, als ein Beispiel, was passiert, wenn Sie haben zwei Map<Person, Job>s, ein von einem Monat und eine aus jetzt, und Sie wollen, um Leute zu finden, die den Job gewechselt: !m1.get(person).equals(m2.get(person)). Wenn eine person änderte Ihren Namen in diesem Monat, Sie wollen immer noch, Sie zu finden, die in beiden maps.
  • Aber, nun, ich denke, wir sind in Allgemeine-Diskussion-Kategorie, so dass, wenn Sie fortsetzen wollen, würde ich vorschlagen, einen chat und lud mich zu es. 🙂

InformationsquelleAutor Abdulla | 2015-05-02
Schreibe einen Kommentar