isA
überprüft, ob die Klasse der erwarteten Klasse entspricht. In Mockito 1.x, any
, anyObject
und anyString
ignorieren Sie das Argument vollständig einschließlich seines Typs, obwohl any
einen Klassenparameter und anyString
im Namen angeben kann.
Wenn Sie keinen Grund haben, sich vor einem inkompatiblen Argument zu schützen, können Sie sich wahrscheinlich an any
und anyString
halten. Der Mockito-Stil bevorzugt flexible Testfälle, was bedeutet, dass nur die Dinge überprüft werden, die Sie explizit überprüfen, und dass absichtlich alles andere unspezifiziert ist.
UPDATE: Mockito committer Brice hat some historical background and future direction angeboten:
Aus historischen Referenz, any
ist eine Abkürzung Alias anything
, zu diesem Zeitpunkt der API einen zwingt zu werfen, und Mitwirkenden und/oder Committer dachte darüber nach, die Klasse als Parameter zu übergeben, um diese Umwandlung zu vermeiden, ohne die Semantik dieser API zu ändern. Diese Änderung änderte jedoch schließlich, was die Leute von dieser API hielten. Dies wird in Mockito 2 +
BTW, 'mal (1)' ist die Standardeinstellung und kann ausgeschaltet werden –