Mockito:Instanzmethode mit any simulieren

aze

Bekanntes Mitglied
Hi

Ich habe folgenden Code

Java:
	public static GoogleCalendarUtility getStub(){
		GoogleCalendarUtility googleCalendarUtility = mock(GoogleCalendarUtility.class);
		CalendarService anyCalendarService = any(CalendarService.class);
		CalendarEventEntry anyCalendareventEntry = any(CalendarEventEntry.class);
		String anyString = anyString();
		when(googleCalendarUtility.getCalendarUser(anyCalendarService,anyString())).thenReturn("Hallo Gast");
		try {
			when(googleCalendarUtility.getCalendarService(anyString(),anyString(),anyString())).thenReturn(anyCalendarService);
		} catch (AuthenticationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		when(googleCalendarUtility.getNextEventAllCalendars(anyCalendarService,anyString())).thenReturn(anyCalendareventEntry);

		when(googleCalendarUtility.getNextEventString(anyCalendareventEntry)).thenReturn("Schöner Tag");

		when(googleCalendarUtility.getNextEventTimeString(anyCalendareventEntry)).thenReturn("24 Stunden");
		return googleCalendarUtility;
	}

Leider funktioniert das any nicht.Es gibt immer null zurück. Kann man nicht Methoden mit beliebigen Objekten in Mockito mocken oder mache ich etwas falsch ?
 

aze

Bekanntes Mitglied
Mein Problem ist: Ich würde ja auch die Klassen CalendarService und CalendarEventEntry mit der Funktion mock() mocken. Das passt aber nicht zur Methode when(). diese Methode erwartet ein Objekt org.mockito.Matchers. Frage: Wie kann ich diesen Matcher erstellen, so dass die Methode any() kein Nullobjekt erzeugt ?
 
G

Gelöschtes Mitglied 6946

Gast
Ich zitiere mal eine Stelle aus der Mockito-Doku:

Matcher methods like anyObject(), eq() do not return matchers. Internally, they record a matcher on a stack and return a dummy value (usually null). This implementation is due static type safety imposed by java compiler. The consequence is that you cannot use anyObject(), eq() methods outside of verified/stubbed method.

D.h., dass du any() nur innerhalb des when-Aufrufs verwenden kannst und dieses nicht einer Variablen zuordnen kannst, die du dann benutzen willst. Weil es halt null ist, wie du bereits festgestellt hast. anyCalendarService wäre also durch any(CalendarService.class) zu ersetzen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Robertop Mockito.when mit JDK 21 verursacht Buildfehler "RestrictedIdentifierWhen" Allgemeine Java-Themen 15
M mockito Tests Allgemeine Java-Themen 9
C Klasse mit Mockito simulieren Allgemeine Java-Themen 9
J Mockito - Objekte miteinander vergleichen (equals) Allgemeine Java-Themen 6
W Frage zu Klassendesign und Test mit Mockito Allgemeine Java-Themen 5
J Mockito Iterator korrekt mocken Allgemeine Java-Themen 5
OnDemand API simulieren Allgemeine Java-Themen 1
OnDemand Drucker simulieren auf Mac Allgemeine Java-Themen 5
N Tastendrücke Simulieren Allgemeine Java-Themen 7
W Unittest - Objekte simulieren Allgemeine Java-Themen 7
SeppiHinteregger Maus realistisch simulieren Allgemeine Java-Themen 5
M Mikrofon Input simulieren Allgemeine Java-Themen 1
W keypress simulieren Allgemeine Java-Themen 6
O Bot, Mausklicke simulieren Allgemeine Java-Themen 19
C HTTP OnClick auf Website in Java simulieren Allgemeine Java-Themen 2
Mephist0 Mailserver simulieren mit EasyMock 1.2 Allgemeine Java-Themen 7
S Strg+V ohne Fokus simulieren! Allgemeine Java-Themen 12
L Mausklick simulieren Allgemeine Java-Themen 4
M Mouse Klicks simulieren? Allgemeine Java-Themen 10
L Tastendruck simulieren Allgemeine Java-Themen 7
T JComboBox simulieren Allgemeine Java-Themen 9
U langsamen Prozessor simulieren Allgemeine Java-Themen 4
S Dateisystem unter Java simulieren Allgemeine Java-Themen 17
T Tastendruck simulieren Allgemeine Java-Themen 3
G Enter-Taste simulieren Allgemeine Java-Themen 14

Ähnliche Java Themen

Neue Themen


Oben