Junit Tests mit void-Methode
Habe ich zum erstellen eines JUnit test für die folgende Klasse, aber ich kann nicht führen Sie den test für die Methode deposit
.
public class Account {
private int balance;
private float Interest_Rate =10;
public Account() {
this.balance = 0;
}
public void deposit(int amount) {
balance = balance+amount;
}
}
@Test
public void testdeposit() {
Account i = new Account();
assertEquals("Result",75,i.deposit(25));
}
- Erstellen Sie eine get-Methode zum Zugriff auf die balance. Die für die Geltendmachung der Kaution vor und nach dem Aufruf.
- Und deine Frage ist...
- Der test, den ich geschrieben habe überprüfen Sie den code nicht ausführen, ich erhalte eine Fehlermeldung bei der "assertEquals", wie die Methode, Einzahlung gibt void zurück,,, so wie kann ich machen, damit es funktioniert?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man hinzufügen, eine
getBalance()
Methode in derAccount
Klasse :Und es verwenden, um die Behauptung :
In der Regel das hinzufügen von Methoden, die nur während der unit-Tests können bewertet und diskutiert werden.
Aber hier
getBalance()
erscheint als unvermeidlich.Testen private Felder/Methoden keinen Sinn.
In deinem Fall
balance
ist "write-only" - Variablen; es sollte auch eine öffentliche Zugriffsmethode (wie oben geschrieben), oder Feld verwendet werden, sollten andere Methoden wieIn diesem Fall ist dein test sein sollte, wie
Nicht testen der Implementierung; test der Schnittstelle.
Könnten Sie ein System haben.aus.println-Methode und erzählen Sie den JUnit-test, um zu Fragen, für stdout:
dann
schließlich