Testing com Spring, Guice, JMock, Mockito: como integrar

Mycila Testing Framework é uma biblioteca de integração que facilita o desenvolvimento de testes. Atualmente o framework tem plugins para as versões 1 e 2 do Guice, Spring, JMock, EasyMock, Mockito, AtUnit e os autores estão planejando dar suporte ao DbUnit, JGroups, JMS, JMX, Selenium e outras ferramentas.

Vejam um exemplo utilizando o Guice 2 e o Mockito:

@GuiceContext(ClusterModule.class)
public final class ClusterNodeListenerTest extends AbstractMycilaTestNGTest {

@Inject
ClusterFactory factory;

@Mock
ClusterNodeListener listener;

@Mock
@Bind(scope = Singleton.class)
ClusterService service;

@Test
public void test_ClusterNodeListener() throws Exception {

 ClusterState agent1 = factory.createClusterState("states");
 agent1.addListener(listener);

 ClusterState agent2 = factory.createClusterState("testatoo-states");
 Thread.sleep(4000);
 agent2.close();
 
 Thread.sleep(4000);
 agent1.close();

 verify(listener, times(1)).onJoin(any(UUID.class));
 verify(listener, times(1)).onLeave(any(UUID.class));

 }
}

Será que irá facilitar o desenvolvimento de testes? O que vocês acham?

Fonte | Página do projeto

Não entendi a real vantagem do framework.

Quando se faz testes “unitários” com mockito e Spring não se tem muito o que fazer, a não ser colocar a anotação @Mock, dar um initMocks e pronto.

Se bem que, “testes unitários” com Spring… não fica meio pesado o teste? Se for um de integração tudo bem, mas eu sinceramente acho que usar qualquer coisa além de um framework de mocks pra testes unitários já torna o teste pesado.