ventana tiempo temporizador studio segundos programacion para móviles metodo hacer eventos ejecutar desarrollo curso codigo cierto cada aplicaciones java unit-testing mockito

java - tiempo - ¿Cómo verificar que se llame a un método de un objeto no simulado?



manual de programacion android pdf (1)

Puedes usar un Mockito Spy para esto. Si configura a anotherObj como espía, puede verificar las llamadas a métodos en ese objeto. En su ejemplo, debe asegurarse de que la llamada a foo use el espía en lugar de una implementación ordinaria de anotherObj . El espía está configurando algo como esto:

AnotherClass anotherObjSpy = Mockito.spy(new AnotherClass()); // do stuff verify(anotherObjSpy).codePath1(...);

Parece que mockito solo verifica si se llama a un método de un objeto simulado y si el objeto simulado siempre tiene algo. como doReturn (). when (objeto simulado) ...

Pero, ¿puedo crear un objeto simulado y definir doReturn (). When (objeto simulado) ... y luego verificar que se llame a un método de otro objeto?

Esto es lo que quiero hacer: defino un entorno simulado y devuelvo una respuesta pase lo que pase. Pero luego quiero verificar diferentes métodos de otroObj se llama en diferentes casos.

¿Como hacer eso?

public class BaseClass { private Environment mockEnvironment; @Test public void testcase () { setMockitoEnvironment(); response = foo(mockEnvironment, argument1); verify(anotherObj).codePath1(...); response = foo(mockEnvironment, argument2); verify(anotherObj).codePath2(...); } } //this method successfully return a response with any input //because I do not care how response is eventually generated, //I only care whether code path reaches createResponse() via //code path 1 or code path 2. private void setMockitoEnvironment() { mockEnvironment = mock(Environment.class); doReturn (response).when(mockEnvironment).createResponse(for any input); } private Response foo(...) { ... return createResponse(...); }