Mockito quando / então não retorna o valor esperado
Estou tentando stub esse método getKeyFromStream, usando os 'any' matchers. Tentei ser mais explícito e menos explícito (anyObject ()), mas parece que não importa o que eu tente, esse stub não retornará o fooKey no meu teste de unidade.
Gostaria de saber se é porque está protegido ou há algo mais que estou ausente ou fazendo incorretamente. Eu tenho outras instruções quando / então ao longo dos testes queestão trabalhando mas por alguma razão aqui, não é.
Nota: O getKeyFromStream geralmente usa um byteArrayInputStream, mas estou tentando combiná-lo com um InputStream, tentei os dois sem sucesso.
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;
}
}
Teste de unidade
@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);
}