Testes usando JUnit

3 respostas
P
Oi pessoal, Estou tentando realizar testes usando o JUnit... mas como ainda estou aprendendo, estou com uma dúvida. Tenho um método que formata um Double:
public static String format(Object value)
{
     	DecimalFormatSymbols decimalFormat = new DecimalFormatSymbols();
         decimalFormat.setDecimalSeparator(',');
         decimalFormat.setGroupingSeparator('.');
 
         DecimalFormat myFormatter = new DecimalFormat("##,###,###,##0.00", decimalFormat);
         
         return myFormatter.format(value);
}
Abaixo estou testando o método:
public void testFormat() {
 	DoubleHelper helper = new DoubleHelper(new Double(1000000.565656565)); 
 	String result = helper.format();
 	String expected = new String("1.000.000,57");
 	assertEquals(expected, result);
}
Está correto meu teste?? É assim mesmo que se faz ou exite outra maneira mais fácil?? []´s

3 Respostas

R
public void testFormat() {

DoubleHelper helper = new DoubleHelper(new Double(1000000.565656565));

String result = helper.format();

String expected = new String(1.000.000,57);

assertEquals(expected, result);

}

Como seu método é static (format), você deve fazer o seguinte para executá-lo.
String result = DoubleHelper.format (new Double(1000000.565656565));

aí você faz o assertEquals com o resultado esperado e o obtido.
Você pode utilizar o assertNotNull, para vê se o retorno não está nulo e outros.

P

O que há de errado com esse meu teste??

public void testGetCalendar() 
{
	LongHelper helper = new LongHelper(new Long(123456789));
	Calendar result = helper.getCalendar();
	Calendar expected = result;
	assertEquals(expected, result);
	System.out.println("Calendar " + result);
}

Ele testa um método que retorna um Calendar com Long representando os milisegundos de uma Data.

R
public void testGetCalendar()

{

LongHelper helper = new LongHelper(new Long(123456789));

Calendar result = helper.getCalendar();

//Isso aqui não pode. Senão, quando você for comparar (assertEquals), por mais que esteja retornando um valor errado, vai dar sempre verdadeiro.

Calendar expected = result;

assertEquals(expected, result);

System.out.println("Calendar " + result);

}

Quando você faz um test case, você já deve ter em mente o que o método a ser testado retornará.
Caso o retorno seja diferente do retornado, não é o seu teste que está errado e sim o método que fez algum processamento indevido.

No test case você faz uma chamada ao método, recebe o valor de retorno e compara com um valor que você tenha certeza que ele vai retornar.

Ex:

public int soma (int a , int b) {

return a + b;

}

//–

public void testSoma () {

//Valor que deve ser retornado caso o método esteje funcionando corretamente.

int esperado = 4;

int obtido =  soma (2, 2);

assertEquals (esperado, obtido);

}

Você sabe que o retorno deverá ser 4. Caso não seja 4 o método está executando algo errado.

Criado 11 de agosto de 2006
Ultima resposta 11 de ago. de 2006
Respostas 3
Participantes 2