¿Cómo llamar al método real con la condición del objeto espiado en Mockito?

Necesito poder llamar a un método real de objeto espía basado en alguna condición. Es decir, si la condición es verdadera, llame al método real; de lo contrario, haga otra cosa.

Para ser claro, necesito lanzar una excepción en la primera llamada y llamar al método real en una segunda llamada. ¿Es posible lograrlo usando Mockito?

Object object = Mockito.spy(new Object());

// On the first call I need to throw an exception like this
Mockito.doThrow(RuntimeException.class).when(object).toString();

// On the second call I need to call a real method
Mockito.doCallRealMethod().when(object).toString();
Respuesta 1

Usando OpenJDK 1.7.0 y GNU JavaMail 1.1.2. Durante la llamada de envío del mensaje real: SMTPTransport.send (msg); Esto sucede: javax.mail.NoSuchProviderException: No hay proveedor para la dirección: rfc822 en ...

Hago una tabla con celdas multilínea, funcionó bien, pero quiero cambiar el color de una sola fila después de hacer celdas de mulilina de columnas específicas, no el color de toda la columna. ¿Cómo puedo hacer eso? ...

Necesito pasar una estructura JNA a la capa nativa que contiene un campo de puntero a estructura (puede contener cero o más estructuras). Aquí está la estructura 'padre': clase pública ...

¿Es posible tomar un proyecto en el que he estado trabajando, importarlo en Spring STS y aplicar todos los beneficios que STS proporciona para el desarrollo fácil de Spring al proyecto? Por ejemplo, me gustaría ...