Allgemein
Wenn Sie überprüfen möchten, dass Sie empfangen ive genau x
Fehler aber über den Text in dem Fehler nicht kümmern:
verify(logger, times(x)).error(anyString());
Wenn Sie überprüfen möchten, dass Sie x
Fehler insgesamt, und dass y
sollte den Text foo
und z
sollte den Text haben bar
erhalten:
verify(logger, times(x)).error(anyString());
verify(logger, times(y)).error("foo");
verify(logger, times(z)).error("bar");
// ... (potentially other cases)
In Context
So zum Beispiel y ou zur Verfügung gestellt, wenn Sie nicht über den Fehlertext ist es egal, es würde wie folgt aussehen:
verify(logger, times(1)).error(anyString());
Wenn Sie über den Fehlertext ist es egal (IE: Sie wollen genau 1 „Boo“ und 1 Gesamtfehler):
Wie Jeff darauf hingewiesen hat, kann der count-Parameter vernachlässigt werden, wenn Sie nur genau ein Ereignis suchen.
Würde nicht nur 'verify (logger, mal (1)). Error (" Boo ");' do it? – dty
@dty Es wird nicht fehlschlagen, wenn 'logger.error (" Baa ")' nicht kommentiert ist, aber ich möchte. – kan
Sorry, habe das nicht verstanden. In diesem Fall sollten Sie sich den Matchers-Kurs ansehen. Sie können überprüfen, ob es einmal mit "Boo" aufgerufen wird und niemals wenn das Argument nicht gleich "Boo" ist. – dty