Mockito, wenn / dann der erwartete Wert nicht zurückgegeben wird
Ich versuche, diese getKeyFromStream-Methode mit den "any" -Matchern zu stoppen. Ich habe versucht, expliziter und weniger explizit zu sein (anyObject ()), aber es scheint, als würde dieser Stub den fooKey in meinem Unit-Test nicht zurückgeben, egal was ich versuche.
Ich frage mich, ob es daran liegt, dass es geschützt ist oder etwas anderes fehlt oder falsch gemacht wird. Ich habe andere when / then-Anweisungen während der Tests, diesind am Arbeite aber aus irgendeinem Grund ist es hier nicht.
Hinweis: Der getKeyFromStream verwendet im Allgemeinen einen byteArrayInputStream, aber ich versuche, ihn mit einem InputStream abzugleichen. Ich habe beide ohne Erfolg versucht.
public class FooKeyRetriever() //Mocked this guy
{
public FooKey getKey(String keyName) throws KeyException {
return getKeyFromStream(getKeyStream(keyName, false), keyName);
}
//Stubbed this method to return a key object which has been mocked
protected FooKey getKeyFromStream(InputStream keyStream, String keyName){
//Some code
return fooKey;
}
}
Gerätetes
@Mock
private FooKeyRetriever mockKeyRetriever;
@Mock
private FooKey fooKey;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
}
@Test
public void testGetFooKey() throws Exception {
when(foo.getKeyFromStream(any(InputStream.class),any(String.class))).thenReturn(fooKey);
FooKey fooKey = mockKeyRetriever.getKey("irrelevant_key");
assertNotNull(fooKey);
}