Es fällt mir schwer, generische Typen zu verspotten. Nachfolgend finden Sie meine Klassendefinitionen
Code: Select all
public interface MyHandler {
void handle(S t1, T t2);
}
Das Folgende ist meine Implementierungsklasse
Code: Select all
public class MyFirstConcreteHandler implements MyHandler{
// implementation
}
Hier erweitert OtherClass BaseClass
Das Folgende ist meine Factory-Klasse
Code: Select all
public class MyHandlerFactory {
Map myHandlers;
public MyHandler getHandler(String key) {
// myhandlers will be populated in constructor
return myHandlers.get(key.toLowerCase());
}
}
Das Folgende ist, was ich zu verspotten versuche
Code: Select all
MyHandlerFactory myHandlerFactory = mock(MyHandlerFactory.class)
MyFirstConcreteHandler mockHandler = mock(MyFirstConcreteHandler.class);
when(myHandlerFactory.getHandler("random")).thenReturn(mockHandler);
Das Folgende ist ein Compilerfehler, den ich erhalte
Code: Select all
Cannot resolve method 'thenReturn(MyConcreteHandler)'
Wie löse ich das?
Es fällt mir schwer, generische Typen zu verspotten. Nachfolgend finden Sie meine Klassendefinitionen
[code]public interface MyHandler {
void handle(S t1, T t2);
}
[/code]
Das Folgende ist meine Implementierungsklasse
[code]public class MyFirstConcreteHandler implements MyHandler{
// implementation
}
[/code]
Hier erweitert OtherClass BaseClass
Das Folgende ist meine Factory-Klasse
[code]public class MyHandlerFactory {
Map myHandlers;
public MyHandler getHandler(String key) {
// myhandlers will be populated in constructor
return myHandlers.get(key.toLowerCase());
}
}
[/code]
Das Folgende ist, was ich zu verspotten versuche
[code] MyHandlerFactory myHandlerFactory = mock(MyHandlerFactory.class)
MyFirstConcreteHandler mockHandler = mock(MyFirstConcreteHandler.class);
when(myHandlerFactory.getHandler("random")).thenReturn(mockHandler);
[/code]
Das Folgende ist ein Compilerfehler, den ich erhalte
[code]Cannot resolve method 'thenReturn(MyConcreteHandler)'
[/code]
Wie löse ich das?