Re:Dificuldade em realizar testes

Olá Paula !

Para fazer o teste unitário, você pode escrever o código para a chamada do método que deseja checar. Este é o foco do teste unitário.
Por exemplo, no seu caso, você poderá fazer a chamada ao método diferencaEmDias(), passando parametros, e após a chamada, verificar se o resultado retornado é o esperado.
Exemplo:

public void testDiferencaEmDias() {

                long result = diferencaEmDias(xxx);	
                if (long = YY) {
                    Pass("Test Ok")
                }
                else {
                    Fail("Test Failed");
               }
}

Oi Paula,

Você tem que usar os métodos do JUnit para garantir o comportamento que você espera. Onde coloquei ‘10’, coloque o número que você espera que seja retornado. Se estiver com muitas dificuldades, tente ler o tutorial que tem aqui no GUJ. E se estiver com mais dúvidas, posta ai que ajudamos :slight_smile:

import junit.framework.TestCase;
 
public class CalendarTest extends TestCase {

  private SuaClasse suaClasse = new SuaClasse();

  public void testDiferencaEmDias() {
    assertEquals(10, suaClasse.diferencaEmDias(Calendar.getInstance()));
  }
}

[editado]Corrigi o código acima…[/editado]

[]s
Eduardo

Eu que pergunto como assim. No seu código do primeiro post tem um import de JUnit… :-o

Se você vai mesmo usar o JUnit, sugiro que você releia então o tutorial do GUJ. Basicamente, você cria uma classe pra testar a outra. Para cada método que você quer testar, você cria um método de testes na classe de teste.

Dentro do método, você usa os métodos do JUnit para assegurar que o comportamento que o método vai ter é o esperado, ou seja, que ele vai retornar o que você espera, que não vai lançar nenhum erro, e por ai vai.

No método que você criou no primeiro post, ele recebe apenas uma data, e não duas. Criei um teste para ele no meu post acima. Qualquer dúvida, posta o código completo ai e a gente ajuda.

[]s
Eduardo

Então Paula,

No meu primeiro post tem um exemplo de teste que fiz pro seu método que você pode tentar. No código que eu postei, só substitua o número 10 pelo número de dias que você espera que o método retorne.

Veja se te serve e nos diga :slight_smile:

[]s
Eduardo

Oi Paula,

Não necessariamente. Como disse, você precisa colocar no lugar do número 10 o valor que você espera que seu método retorne. E seu método vai retornar a diferença entre as datas do atributo ‘date’ da sua classe e do parâmetro ‘dataLimite’ do método diferencaEmDias. Por exemplo, se você espera a diferença entre 07/08/2006 e 08/08/2006, o método deve retornar 1.

[]s
Eduardo

Olá pessoal…
Sou novata em Java e um dos meus maiores problemas é realizar testes.
Me disseram para usar o JUnit… e estou tentando realizar um teste, mas surgiu uma dúvida.
Quero verificar se o meu método abaixo é funcional:

[code]public long diferencaEmDias(java.util.Calendar dataLimite)
{
long begin = date.getTimeInMillis();
long end = dataLimite.getTimeInMillis();

    return (end - begin) / (24 * 60 * 60 * 1000);
}

[/code]Minha dúvida é:
Gerou um CalendarTest, mas sou eu que tenho que implementar o código de teste?? É essa minha maior dificuldade… não consigo fazer isso…
Segue o CalendarTest:

[code]import junit.framework.TestCase;

public class CalendarTest extends TestCase {

public void testDiferencaEmDias() {
	fail("Not yet implemented");
}

}
[/code]
Alguém poderia me ajudar??
Valeu,

Olá… eu já li o tutorial aqui do GUJ. Valeu :smiley:
Como assim usar o JUnit para garantir o comportamento que eu espero??
O meu método é para receber duas datas e retornar a diferença de dias entre elas. Gostaria de realizar um teste para ver se esta correto. Mas eu não sei como faço para receber essas duas datas…

Segue minha classe Calendar abaixo:

[code]
import java.text.SimpleDateFormat;
import java.util.Locale;

public class Calendar
{
private java.util.Calendar date;

public Calendar(java.util.Calendar calendar)
{
    this.setDate(calendar);
}

public void setDate(java.util.Calendar calendar)
{
    date = calendar;
}

public java.util.Calendar getDate()
{
    return date;
}

public String getFormattedDate()
{
    String ret = "";
    SimpleDateFormat f = new SimpleDateFormat("dd'/'MM'/'yyyy",
            new Locale("PT", "BR"));

    if (date != null)
    {
        ret = f.format(date.getTime());
    }

    return ret;
}

public String getUnformatted()
{
    String retorno = "";
    retorno = this.getFormattedDate();
    retorno = retorno.replaceAll("/", "");

    return retorno;
}
public long DataLong()
{
    java.util.Calendar calendar = java.util.Calendar.getInstance();
    long dt = calendar.getTimeInMillis();

    return dt;
}

public long diferencaEmDias(java.util.Calendar dataLimite)
{
    long begin = date.getTimeInMillis();
    long end = dataLimite.getTimeInMillis();

    return (end - begin) / (24 * 60 * 60 * 1000);
}

}[/code]
Como faria testes usando o JUnit??

Oi Eduardo,
Coloquei o teste que você fez… mas não deu certo…
Ficou aquela barra vermelha…
Então isso significa que meu método está errado??