Junit Positiven und Negativen Tests
Habe ich eine Aufgabe in die ich brauchen, um einige tests für meinen code. Wir haben die Verwendung von Junit-tests so habe ich mich entschlossen zu tun, positiv-und negativtests meiner Methoden.
Beispielsweise ein test für das ermitteln des namens aus einer ArrayList habe ich positive und negative Tests:
Postive:
public void testGetNamePositive() {
Entry entry1 = new Entry("Susan Holmes", "122 Harringdale", "Workington", "CA14 2GH");
assertEquals("Susan Holmes",entry1.getName());
}
Negativ:
public void testGetNameNegative() {
Entry entry1 = new Entry("Susan Holmes", "122 Harringdale", "Workington", "CA14 2GH");
assertFalse( entry1.getName() == "Alison");
}
Den test ich bin nicht sicher, über diese ein:
public void testEntryCreated() {
Entry entry1 = new Entry("Susan Holmes", "122 Harringdale", "Workington", "CA14 2GH");
assertNotNull(entry1);
}
Gibt es einen negativen test?
Während ich kann sehen, dass der Wert Ihres ersten test (es ist zu überprüfen, dass der Konstruktor funktioniert so Lala), der zweite test ist zumindest zur Diskussion. Können Sie garantieren, dass
entry1.getName != "Alice"
? Ich meine nicht zu klingen, snarky, rahter darauf hin, dass auch die tests sind Vermögenswerte, die Sie verwalten müssen. So sollten Sie versuchen, sehr genau zu sein, was Sie wollen, zu überprüfen und, was vielleicht aus dem Rahmen.InformationsquelleAutor ToniHopkins | 2013-03-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eintrag class public constructor haben soll, einige Argumente, die Validierung, z.B. name darf nicht null sein. So können Sie schreiben, ein negativer test wie dieser
beachten Sie, dass ich verwendet, JUnit 4
InformationsquelleAutor Evgeniy Dorofeev
Ich würde behaupten, dass die
testEntryCreated
test ist bereits nicht erforderlich. Sie sind hier nicht testen das Verhalten Ihrer Klasse, sondern vielmehr die Fähigkeit der JVM ordnungsgemäß zu erstellen-Objekte. Stattdessen konzentrieren sich auf Tests, wie Sie möchten, dass Ihre Objekte zu Verhalten.Ja, ich bin einverstanden. Wenn dies der Fall ist, dann einer der anderen Antworten wäre immer noch eine bessere Möglichkeit, dies zu testen (erwarten, Ausnahmen, etc).
InformationsquelleAutor moxn
Ich bin nicht ganz sicher, was Sie sind versuchen zu testen, hier. Alle, die Sie derzeit testen, ist, dass die variable name wird korrekt gesetzt.
Wenn Sie unit-Tests, die Sie testen möchten bestimmte Methoden isoliert (die kleinste testbare Einheit) mit negativen und positiven input.
Dein Beispiel der negative test ist wie folgt:
Dies ist nicht ein negativer test Fall. Was Sie möchten, um zu testen, negativ ist zum Beispiel, dass ein name keine zahlen enthalten oder ein leerer string sein:
Was Sie hier erwartet ist wohl eine Art Ausnahme dar, da Sie "testen" den Konstruktor. Wenn dies war eine Methode, die Sie von uns erwarten können irgendeine Art von Rückgabewert statt eine Ausnahme
InformationsquelleAutor John Snow