Um einen Fehler in einer Anwendung zu beheben, änderte ich eine benannte Methode, postLogin
indem ich einer vorhandenen Methode namens einen Aufruf hinzufügte getShoppingCart
.
Code
protected void postLogin() {
getShoppingCart();
}
Ich bin mir jedoch nicht sicher, wie ich einen Unit-Test am besten schreiben kann postLogin
.
Ansatz 1
Verwenden Sie verify from Mockito, um einfach zu überprüfen, ob die Methode aufgerufen wurde.
verify(mock).getShoppingCart();
Ansatz 2
Testen Sie die Nebenwirkung des Methodenaufrufs, indem Sie den Wert des Warenkorbs des Benutzers abrufen.
AssertNotNull(user.getShoppingCart());
Ist ein Ansatz besser als der andere?
getShoppingCart()
Methode keine Nebenwirkungen hat, müssen Sie nicht testen, ob sie aufgerufen wird. Wenn es Nebenwirkungen hat, sollten Sie seinen Namen wirklich ändern, da getXXX()
Methoden herkömmlicherweise idempotent sein sollten.
getNextValue
? Vielleicht könnte jemand sagen "Nenn es nicht Getter, ändere den Namen in nextValue
", aber ich habe es schon mal gesehen getNext
. Vielleicht wäre ein besseres Beispiel ein Objekt, das ein Elektron darstellt; was passiert , wenn ich anrufe getPosition
? Oder schlimmergetPosition(); getVelocity();