Olá,
Tive agora um decepção com JUnit. Queria testar um método privado mas ele exigia que o mesmo fosse público. Não tem porque o método ser público, a não ser para satisfazer o JUnit. É assim mesmo ?
Márcio
Olá,
Tive agora um decepção com JUnit. Queria testar um método privado mas ele exigia que o mesmo fosse público. Não tem porque o método ser público, a não ser para satisfazer o JUnit. É assim mesmo ?
Márcio
O que você deveria testar é o método público que usa este método privado.
Lipe,
Meu método privado constrói uma String de conexão SQL. Eu quero testar se a string contruida estava correta, e não se o método que executa a string ( este método é público ) está correto.
Obrigado,
Márcio
Você tem certeza de que precisa de um teste unitário para ver isso?
O método de construção da String de conexão SQL será sujeito a mudanças constantes? Ele precisará ser testado a cada mudança para homologar a mudança?
Então basta testar o método que executa a string :D
http://www.artima.com/suiterunner/private2.html
class MyClass {
private int state = 0;
public int doSomething() {
prepareState();
return state;
}
private void prepareState() {
state = 1;
}
}
Ao testar um método privado utilizando alguma gambiarra comp reflection, no fundo tudo o que está fazendo é tornando o método público, e agora deve garantir que sempre funcione da mesma maneira, pois há classes que dependem dele, no seu caso um test case.
A única boa razão que consigo pensar para testar métodos privados é ao trabalhar com código de terceiros.
Wilerson e Lipe,
Talvez eu esteja tesetando um método que não precise ser testado. Uma vez pronto, ele não irá sofrer alterações. Talvez eu devesse testá-lo fora do JUnit.
Obrigado a vocês,
Márcio
Wilerson e Lipe,Talvez eu esteja tesetando um método que não precise ser testado. Uma vez pronto, ele não irá sofrer alterações. Talvez eu devesse testá-lo fora do JUnit.
Obrigado a vocês,
Márcio
Quando for testar o metodo (jah que vao ser raras as vezes) muda o modificador dele na hora do teste… 