neoreload:
macario1983:
neoreload:
Bom pessoal, como tinha dito antes o problema é com a ordem dos testes, depois de muito tempo ainda continua. Fiz aqui os testes de duas classes, um exemplo é que entre os testes tem um para alterar o percentual de desconto, para ele alterar ele busca o produto pelo código cadastrado, era para ele rodar no final depois do produto ter sido cadastrado em outro teste que eu fiz, só que ele tem vezes que roda primeiro e outra roda normal por último, quando vai primeiro ele diz que é falso, só que ele ta dando falso porque rodou antes do de cadastrar. Como que faço para mudar isso? lembrando que ainda to no básico dos testes ^^ .
Como está o código:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ME_POO;
import org.junit.Test;
import static org.junit.Assert.*;
import org.junit.BeforeClass;
import ME_POO.Lanchonete;
import ME_POO.Cardapio;
/**
*
* @author Vanderson
*/
public class Testes {
private static Lanchonete lanchonete;
private static Cardapio cardapio;
public Testes() {
}
@BeforeClass
public static void Inicializar() {
lanchonete = new Lanchonete(2,2);
cardapio = new Cardapio(2);
}
//Lanchonete
@Test
public void testAdicionarCliente() {
System.out.println("AdicionarCliente");
Cliente pCliente = new Cliente("1234", "Lucas", "Rua C");
boolean expResult = true;
boolean result = lanchonete.AdicionarCliente(pCliente);
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
//fail("The test case is a prototype.");
}
@Test
public void testAdicionarCliente2() {
System.out.println("AdicionarCliente2");
Cliente pCliente = new Cliente("12345", "Lucas", "Rua C");
boolean expResult = true;
boolean result = lanchonete.AdicionarCliente(pCliente);
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
//fail("The test case is a prototype.");
}
@Test
public void testExcluirCliente() {
System.out.println("ExcluirCliente");
String pCPF = "1234";
boolean expResult = true;
boolean result = lanchonete.ExcluirCliente(pCPF);
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
//fail("The test case is a prototype.");
}
@Test
public void testBuscarCliente() {
System.out.println("BuscarCliente");
String pCPF = "12345";
Cliente result = lanchonete.BuscarCliente(pCPF);
assertNotNull(result);
// TODO review the generated test code and remove the default call to fail.
//fail("The test case is a prototype.");
}
//Cardapio
@Test
public void testAdicionarProduto() {
System.out.println("AdicionarProduto");
Produto pProduto = new Produto(50, "ssss",7, 1);
boolean expResult = true;
boolean result = cardapio.AdicionarProduto(pProduto);
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
//fail("The test case is a prototype.");
}
@Test
public void testAdicionarProduto2() {
System.out.println("AdicionarProduto");
Produto pProduto = new Produto(60, "zzzz",8, 2);
boolean expResult = true;
boolean result = cardapio.AdicionarProduto(pProduto);
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
//fail("The test case is a prototype.");
}
@Test
public void testRemoverProduto() {
System.out.println("RemoverProduto");
int pcodigo = 50;
boolean expResult = true;
boolean result = cardapio.RemoverProduto(pcodigo);
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
// fail("The test case is a prototype.");
}
@Test
public void testAlterarPercentualDesconto() {
System.out.println("AlterarPercentualDesconto");
int pCodigo = 60;
double pNovoValor = 7;
boolean expResult = true;
boolean result = cardapio.AlterarPercentualDesconto(pCodigo, pNovoValor);
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
//fail("The test case is a prototype.");
}
@Test
public void testBuscarProduto() {
System.out.println("BuscarProduto");
int pcodigo = 60;
Produto result = cardapio.BuscarProduto(pcodigo);
assertNotNull(result);
// TODO review the generated test code and remove the default call to fail.
//fail("The test case is a prototype.");
}
}
Cara por coincidência eu fiz um trabalho da faculdade sobre Junit este final de semana e acho que posso te ajudar com algumas coisas que observei...
Repare que ordem de execução da tela do Junit mostra a ordem dos métodos...
Você pode tentar alterar a ordem deste jeito, foi assim que fiz
Outra coisa no teste de inserir, porque você não usa asserTrue?
Rapaz essa parte do asserTrue é verdade mesmo, nem tinha pensado ^^. Agora sobre tela do Junit mostra a ordem dos métodos, eu uso o netbeans e não entendi direito isso. Aqui eu vi a parte inferior esquerda que tem o nome dos testes , mas não pode alterar nada ali :(
Ta bom oq vc pode fazer é o seguinte
Pois imprimi na tela o nome dos metodos
vc poderia alterar a ordem deles, ir trocando
agora depende oq vc quer fazer
a anotação @beforeClass é executada somente uma vez...
enquanto a anotação @before é executada cada vez que é encontrada a anotação @test
pense nisso...
no meu caso eu precisa popular arraylist uma vez
e fazer testes, de tamanho de lista, inserir mesmo objeto e remover...
deu certim...
observando a ordem que é executado...
sobre a ordem que o Junit mostra como essa figura
[img]http://improveit.com.br/images/br/xp/praticas/tdd/emma/junitGreen.png[/img]
Assim eu observei a ordem que o Junit executa os métodos...
É isso, vlw