Pessoal,
Estou começando agora com testes de unidade e estou meio confuso, ainda não consegui encaixar bem as coisas. Tenho uma classe chamada TratadorDeGerenciarAtendente que cuida do gerenciamento de um atendente (Cadastro, alteração, pesquisas, exclusão...). Criei uma classe de testes pra ela no JUnit utilizando Mockito também. O que acham? Seria mais ou menos por aí?
/**
*
* @author PRINCIPAL
*/
public class TratadorDeGerenciarAtendenteTest {
@Mock
private IAtendenteRepositorio repositorio;
private TratadorDeGerenciarAtendente instance;
public TratadorDeGerenciarAtendenteTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
}
@AfterClass
public static void tearDownClass() throws Exception {
}
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
instance = new TratadorDeGerenciarAtendente(repositorio);
}
@After
public void tearDown() {
}
@Test
public void testListarTudo() {
System.out.println("listarTudo");
int expResult = 1;
List lista = mock(List.class);
when(lista.size()).thenReturn(1);
when(repositorio.listarTudo()).thenReturn(lista);
int result = instance.listarTudo().size();
verify(repositorio).listarTudo();
assertEquals(expResult, result);
}
@Test(expected=Exception.class)
public void testPersistirComObjetoNulo() throws Exception{
System.out.println("persistir");
Atendente atendente = null;
doThrow(Exception.class).when(repositorio).persistir(atendente);
instance.persistir(atendente);
fail("Deveria ter lançado uma exception");
}
@Test()
public void testPersistir() throws Exception{
System.out.println("persistir");
Atendente atendente = new Atendente();
atendente.setNome("João da Silva");
atendente.setEmail("joaodasilva@hotmail.com");
atendente.setRegistro("5689654");
instance.persistir(atendente);
verify(repositorio).persistir(atendente);
}
}