2017-11-02 3 views
0

Ich habe von JMockit v0.999.15 Upgrade v1.33 JMockit und ich habe Probleme einen Test Umschreiben der „forEachInvocation“Wie neu zu schreiben entfernt "forEachInvocation" jmockit?

request.addParam(anyString, anyString); minTimes = 1; maxTimes = 10; 
forEachInvocation = new Object() { 
    void validate(String someName, String someValue) { 
      if(Utils.XML.equals(someName)) { 
       assertTrue("incorrect value",someValue.contains("This is a test")); 
      } 
    } 
}; 

Das obige Stück Code wird unter Verwendung eines Teils der Erwartungen ist. die

In JMockit Website folgend erwähnt wird, aber ich bin nicht sicher, wie es neu zu schreiben:

„Version 1.7. Entfernt das forEachInvocation Feld, das 1.6 in Version veraltet wurde Bestehende Tests es verwenden, sollte stattdessen Nutzen Sie die Methoden withCapture() und withCapture (List), oder konvertieren Sie das Handler-Objekt in ein Delegate-Objekt, das dem Ergebnisfeld zugeordnet ist (im Fall einer aufgezeichneten Erwartung). "

Antwort

0

Es wäre so etwas wie dieses:

List<String> someNames = new ArrayList<>(); 
List<String> someValues = new ArrayList<>(); 
request.addParam(withCapture(someNames), withCapture(someValues));minTimes = 1;maxTimes = 10; 

for (String someName : someNames) { 
    // assert some name as/if needed 
} 

for (String someValue; someValues) { 
    // assert some values as/if needed 
}