Galera estou em dúvida se abordagem de teste está correta.
Imaginem que quero testar o cadastro de um usuario, fiz abaixo apenas de exemplo:
public class UserControler{
public boolean saveUser(Usuario usuario){
//...
if(isValidUser()){
dao.salvar(usuario)
return true;
}else {
return false;
}
}
}
public class Dao{
public Usuario salvar(Usuario usuario){
hibernate.save(usuario);
}
}
public class UserTest extends TestCase
{
@Before
public void setUp() throws Exception
{
}
@Test
public void testSave() throws Exception
{
UserController userController = new UserController();
Assert.assertTrue(userController.salvar(UsuarioMock));
}
}
minha dúvida está no fato de minha UserController possui uma dependência do DAO, ou seja, se o DAO falhar meu teste falha.
Neste caso eu deveria criar 2 testes? Um para o Dao.Salvar() e outro para o UserController.saveUser() ? Se for isso, como faço pra ter essa independência e testar estes dois separados, visto que meu UserController depende da minha persistência?
Ou está certo o modo acima e não há uma maneira mais correta?