Hallo zusammen.
Ich möchte eine Controller Klasse mocken. Besser gesagt nur eine Funktion daraus.
Der normale Fall : Man übergibt der Funktion einen Request und bekommt dann eine Inputstream zurück. Da ich beim Testen ungern den Server (der Gegenstelle) mit Requests zuballern will, war meine Idee die Response in eine Dateizu speichern. Nun soll per Mock auf einen bestimmten Request der Inputstream auf die DATEI zurückgeliert werden. Der restliche Teil der Klasse ist davon unbetroffen.
Hier meine Versuche :
Allerdings bekomme ich dann eine Exception :
org.mockito.exceptions.misusing.MissingMethodInvocationException:
when() requires an argument which has to be 'a method call on a mock'.
For example:
when(mock.getArticles()).thenReturn(articles);
Also, this error might show up because:
1. you stub either of: final/private/equals()/hashCode() methods.
Those methods *cannot* be stubbed/verified.
2. inside when() you don't call method on mock but on some other object.
3. the parent of the mocked class is not public.
It is a limitation of the mock engine.
ICh verwende bisher nur Mockito 1.9.5
Kann mir jemand helfen. Vielen dank für die Unterstützung
Ich möchte eine Controller Klasse mocken. Besser gesagt nur eine Funktion daraus.
Java:
public SamsController(@NonNull String url, @NonNull String apiKey) throws {
this.url = url;
this.apiKey = apiKey;
}
protected InputStream getInputStreamFromRequest(@NonNull String request) {
InputStream is = null;
try {
URLConnection connection = new URL(request).openConnection();
is = connection.getInputStream();
} catch (IOException e) {
..
}
return is;
}
Der normale Fall : Man übergibt der Funktion einen Request und bekommt dann eine Inputstream zurück. Da ich beim Testen ungern den Server (der Gegenstelle) mit Requests zuballern will, war meine Idee die Response in eine Dateizu speichern. Nun soll per Mock auf einen bestimmten Request der Inputstream auf die DATEI zurückgeliert werden. Der restliche Teil der Klasse ist davon unbetroffen.
Hier meine Versuche :
Java:
Controller controller = newController(url, apiKey);
String request = new Request(url, apiKey, "sportsclub").buildRequest();
when(controller.getInputStreamFromRequest(request)).thenReturn(new FileInputStream("sportsclub.xml"));
Allerdings bekomme ich dann eine Exception :
org.mockito.exceptions.misusing.MissingMethodInvocationException:
when() requires an argument which has to be 'a method call on a mock'.
For example:
when(mock.getArticles()).thenReturn(articles);
Also, this error might show up because:
1. you stub either of: final/private/equals()/hashCode() methods.
Those methods *cannot* be stubbed/verified.
2. inside when() you don't call method on mock but on some other object.
3. the parent of the mocked class is not public.
It is a limitation of the mock engine.
ICh verwende bisher nur Mockito 1.9.5
Kann mir jemand helfen. Vielen dank für die Unterstützung