So verwende ich doAnswer() API eine Methode setProperty (String, String) der Klasse NodeApportieren verspottet Objektnamen in Mockito in
Node attachmentsJcr = mock(Node.class);
doAnswer(AnswerImpl.getAnswerImpl()).when(attachmentsJcr).setProperty(anyString(),anyString());
AnswerImpl unten-
public class AnswerImpl implements Answer{
private static AnswerImpl instance;
private AnswerImpl(){
}
public static AnswerImpl getAnswerImpl(){
if(instance == null){
instance = new AnswerImpl();
return instance;
}
else
return instance;
}
@Override
public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
final String key = (String)(invocationOnMock.getArguments())[0];
final String value = (String)(invocationOnMock.getArguments())[1];
final String mockedObjectName = ?
results.put(key,value); // results here is a hashhmap
return mockedObjectName;
}
}
implementiert zu verspotten
Ich konnte die Argumente abrufen, die an die setProperty-Methode übergeben wurden. Aber ich kann den MockedObjectName ("AttachmentsJcr" in diesem Fall) nicht abrufen.
Dank Ghost .... Ich denke, ich kann die Mock-Objekte konfigurieren, um einen bestimmten Namen zurückzugeben, wenn getName() aufgerufen wird. Das sollte für mich funktionieren. Und nein, es ist kein Produktionscode. Ich habe nur mit Mockito gespielt, um mich zu lernen :) – Tapan