Im Schreibgerät Test mit Testng und Mockito. Im Normalfall ist es üblich, eine Methode einige Male innerhalb derselben Testmethode aufzurufen, indem Sie alle Szenarien mit unterschiedlichen Werten/Bedingungen überprüfen.Mockito, überprüfen Sie, dass Zeile für eine Bedingung innerhalb einer Testmethode nicht ausgeführt
Bitte denken Sie nicht über die Logik und Design, die ich zur Verfügung gestellt habe. Dies ist nur ein Beispiel für klar, was ich eigentlich machen will.
Bewertungscode unten.
public class Human {
private String name;
private boolean parent;
private List<Human> childs = new ArrayList<>();
public String getName() {
return name;
}
public boolean isParent() {
return parent;
}
public void setParent(boolean parent) {
this.parent = parent;
}
public void addChild(List<Human> childs) {
this.childs = childs;
}
public List<Human> getChilds() {
return childs;
}
}
public class Validator {
public boolean isParent(Human human) {
if (null == human) {
return false;
}
if (human.isParent()) {
return true;
}
if (human.getChilds().size() > 0) {
return true;
}
return false;
}
}
Im Schreiben Testfall für Validator isParent-Methode mit Mockito.
public class ValidatorTest {
public void testIsParent() throws Exception {
Validator validator = Mockito.spy(new Validator());
Human human = Mockito.mock(Human.class);
Mockito.when(human.isParent()).thenReturn(false);
boolean isParent = validator.isParent(human);
Mockito.verify(human).getChilds();
Mockito.when(human.isParent()).thenReturn(true);
isParent = validator.isParent(human);
Mockito.verify(human).getChilds();
}
Hier drin i überprüfen wollen, dass getChilds() nie für die zweite Methode Aufruf validator.isParent nennen (human), weil die menschliche Satz verspottet wahr, wenn der Anruf human.isParent zurückzukehren();
I verwendet Mockito.verifyZeroInteractions() aber es sagt scheitern Als i Mockito.verifyZeroInteractions() Prüfung durch alle Test verstehen. nicht nur für bestimmte Methodenaufruf.
Ich möchte wissen, gibt es eine Möglichkeit, diese Methode zu überprüfen, ist nicht Aufruf für einige Fälle und Methodenaufruf für gleiche Fälle innerhalb derselben Testmethode. Oder sollte ich Test 1 Szenario in einer Testmethode üben.
1 Szenario pro Testmethode. 1. Du prüfst, ob ein Mensch Eltern ist und treue zurück und deine 2. Testmethode sollte das Gegenteil sein – XtremeBaumer