Spring - Teste

6 respostas
R

Ae galera

Tenho uma aplicação que tá em Spring 2.0 e vamos mudar pra EJB, e lendo a revista MJ vi na parte de teste que o autor usou Mock pra testar. Tô tentando fazer aki mas tem metodo que nao tem como simular classes

public interface PessoaDAO{
  
    Pessoa buscaCodigo(int codigo);

}

public class Pessoa {

     PessoaDAO dao; // injetado pelo spring

     public static int fazAlgo() {
            // Aki nao consigo chamar o DAO aki pq nao é statico e nao consigo simular pra fazer o teste
            dao = new PessoaDAO(); // ai tenho q instanciar
            dao.procuraAlgo();
     }
}

Alguem sabe como fazer isso?

}

6 Respostas

Guilherme_Gomes

Para usar variaveis e atributos non-static dentro de uma função static tem que instanciar a classe, usando um new Pessoa() mesmo…

Outra coisa, da uma olhada em JUnit Test pra testar seu Spring!

R

Como o Guilherme falou use JUnit, mais uma sugestão usa Easymock e faça uma classe PessoaTeste para testar o serviço.

R

O problema é esse, como vou testar o metodo fazAlgo() da classe pessoa? [editei o metodo para retornar um inteiro]
Eu imagino assim

public class PessoaTest {

     public testPessoaFazAlgo() {
          Pessoa p = new Pessoa();
          Assert.assertEqual(10, p.fazAlgo());
     }

}

Mas eu preciso saber o que vai acontecer quando eu chamar o dao. E nesse caso não consigo usar o EasyMock, igual o ronybrand falou, porque eu instancia o dao dentro do metodo.

Guilherme_Gomes

Se voce quer saber o que acontece tanto nesse faz algo quanto no DAO, aconselho dois testes diferentes , um pra cada.

E não estou vendo necessidade do static!

Explica melhor o que quer fazer, e quem sabe podemos ajudar mais!

R

Eu quero testar a classe pessoa que tem um metodo de negocio que é statico. O problema é que por ele ser estatico não consigo usar o dao que é injetado pelo spring (que futuramente será um EJB), e entao tenho que instanciar outro dao, e instanciando esse outro dao, nao consigo emular dados com o EasyMock

R

Os metodos estaticos tao pras buscas e pra alguns metodos de negocio, por exemplo, não precisaria ter uma pessoa instanciada pra buscar ela, ou não o método tem a ver com Pessoa mas não necessita de ter um objeto Pessoa

Criado 29 de novembro de 2007
Ultima resposta 29 de nov. de 2007
Respostas 6
Participantes 3