Springockito
Extensión de Spring para simplificar la creación de mocks en los test. Ofrece la posibilidad de realizar la creación de los mocks mediante los xml de Spring o mediante anotaciones en el mismo test.
Ejemplo con anotaciones
Agregar la siguiente dependencia en el pom.xm del proyecto.
<dependencies>
    ...
    <dependency>
      <groupId>org.kubek2k</groupId>
      <artifactId>springockito-annotations</artifactId>
      <version>1.0.8</version>
      <scope>test</scope>
    </dependency>
    ...
</dependencies>
En el ejemplo se prueba el método "talk" de la clase "VoiceService", el cual debe ejecutar una o dos veces el método "play" de la clase "Audio". Esta ultima es la clase que mockeamos para verificar las ejecuciones de su métodos.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = SpringockitoContextLoader.class,
       locations = {"classpath:spring/jenkins-speech-integration-test.xml"})
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) public class VoiceServiceTest {
@Autowired private VoiceService instance; @ReplaceWithMock @Autowired private Audio audio;
   @Test
   public void talk_messageWithPreSound_executePlayMethodTwoTimes() throws Exception {
       String message = "Hola";
       instance.talk(message);
       verify(audio, times(2)).play((InputStream) any());
}
   @Test
   public void talk_messageWithoutPreSound_executePlayMethodOneTimes() throws Exception {
       instance.setPreSound("");
       String message = "Hola";
       instance.talk(message);
       verify(audio, times(1)).play((InputStream) any());
   }
}
En el atributo “loader” de la anotación “ContextConfiguration” hay que setear la clase “SpringockitoContextLoader” de Springockito, esta clase es la encargada de realizar las sustituciones de las clases reales por los mocks.
