Es ist nicht klar, was Sie fordern.
Wenn Sie nur wollen, dass macht Ihre Produktion Anruf zu gewährleisten, die isEmpty()
anrufen und dann ist die ideale Lösung für die Prüfung im Test einfach Pass leer und nicht leere Karten, um Ihren Code.
Bedeutung; Sie tun so etwas wie:
@Test
public void testWithEmptyMap() {
UnderTest underTest = new UnderTest(Collections.emptyMap());
assertThat(underTest.foo(), is(whatever));
@Test
public void testWithFilledMap() {
UnderTest underTest = new UnderTest(Collections.singletonMap(key, value));
assertThat(underTest.foo(), is(somethingElse));
Mit anderen Worten: die besten Art und Weise der Prüfung geht ohne spöttisch. Sie geben Ihrem Code verschiedene Eingaben; und Sie bestätigen, dass Sie die erwarteten Ergebnisse für die verschiedenen Eingabewerte erhalten.
Aber natürlich müssen Sie manchmal Kontrolle, wie verspottete Objekte an Ihren Code unter Test übergeben Verhalten; und in diesem Fall ja, könnten Sie eigentlich eine MessageMap Mock erstelle und konfigurieren Sie es mögen:
Mockito.when(messageMap.isEmpty()).thenReturn(false);
Aber: das wäre eine schlechte Praxis. Sie verspotten nur Objekte, die Sie nicht leicht kontrollieren können. Eine Karte ist super einfach zu steuern; indem Sie einfach etwas Inhalt hineinschieben (oder leer lassen). Anstatt also eine verspottete Map zu übergeben, die als leer konfiguriert ist oder einen Wert enthält, wird eine echte Map übergeben. entweder leer oder mit einigen Werten!
Liste, Karte oder Set sind Util-Klassen? –
Das sind Java.util Paketklassen, das ist, was ich meinte .. –
Danke Buddy! es funktionierte :) –