Ajuda com ordem do JUnit

Pessoal estou começando aqui com os teste unitários com o JUnit. Minha dúvida é como colocar a ordem que os testes serão feitos. O exemplo seria esse :

@BeforeClass
    public static void Inicializar() {
        inventário = new Inventário(2);
    }

    @Test
    public void testAdicionar() {
        System.out.println("Adicionar");
        Guitarra guitarra = new Guitarra("2", 2, "2", "2", "2");
        
        boolean expResult = true;
        boolean result = inventário.Adicionar(guitarra);
        assertEquals(expResult, result);
        
    }
    
    @Test
    public void testAdicionar2() {
        System.out.println("Adicionar");
        Guitarra guitarra = new Guitarra("3", 3, "3", "3", "3");
        
        boolean expResult = true;
        boolean result = inventário.Adicionar(guitarra);
        assertEquals(expResult, result);
        
    }

    
     @Test
     public void testBuscar() {
     System.out.println("buscar");
     String nrSerial = "3";
     boolean expResult = true;
     boolean result = inventário.buscar(nrSerial);
     assertEquals(expResult, result);

Minha classe inventário começaria com 2 vagas para adicionar guitarras, ai passei dois testes que adicionam cada um, uma guitarra. Até ai tudo bem, o problema é na parte do teste da busca do serial da guitarra, coloquei para buscar o serial três, que é o serial da segunda guitarra adicionada. O problema é que o teste da busca do serial nem sempre inicia por último(depois dos dois de adicionar guitarra), ai ele inicia antes da guitarra com o serial que eu quero ter sido adicionada, ai ele diz que é false, sendo que a guitarra com o serial 3, foi adicionada logo depois. Só que como eu disse, cada vez que executo o teste ele inicia em uma ordem diferente, ocasionando o erro. Como que posso fazer uma ordem específica para ele rodar ? pensei que ele rodaria na ordem que foi escrito, mas não ta indo assim :frowning:

boa tarde, então que vc poderia fazer acredito eu seria fazer um mock do seu método buscar
explicação: http://pt.wikipedia.org/wiki/Mock_Object
easyMock: http://www.easymock.org/
powerMock: https://code.google.com/p/powermock/
(powerMock para métodos estáticos)

[quote=jorginhoskater]boa tarde, então que vc poderia fazer acredito eu seria fazer um mock do seu método buscar
explicação: http://pt.wikipedia.org/wiki/Mock_Object
easyMock: http://www.easymock.org/
powerMock: https://code.google.com/p/powermock/
(powerMock para métodos estáticos)[/quote]

ah pelo jeito no junit 4.11 tem a seguinte annotation @FixMethodOrder(MethodSorters.NAME_ASCENDING)

eu não fiz o teste dá uma olhada, abraçossss.

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.");
    }
    
}
    

[quote=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:

[code]
/*

  • 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.”);
    }

}

[/code][/quote]

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?

[quote=macario1983][quote=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:

[code]
/*

  • 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.”);
    }

}

[/code][/quote]

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?[/quote]

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 :frowning:

[quote=neoreload][quote=macario1983][quote=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:

[code]
/*

  • 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.”);
    }

}

[/code][/quote]

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?[/quote]

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 :([/quote]

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

Assim eu observei a ordem que o Junit executa os métodos…

É isso, vlw

Acho que não estou passando minha dúvida direito :D. Tipo se tem um teste para buscar dados dentro de um vetor de objeto e esse teste usa o código do produto para buscar esse dados, o problema é que o teste de cadastrar o produto vem antes do teste de buscar, ai no teste de cadastrar ele vai cadastrar todas as informações do produto com aquele código e no de buscar ele vai procurar pelo produto com aquele código no teste, só que o teste de buscar tem vezes que está sendo executado antes do teste de cadastrar o produto ai ele diz que não encontrou, sendo que nem foi cadastrado ainda. A dúvida mesmo é essa, estou no começo mesmo da parte de testes unitários, já falaram sobre formas de fazer e tals, mas é tudo muito complexo para o nível que estou, acho que é alguma besteira que estou sem fazer certo, porque é para um teste usar o que o outro fez, mas tudo de forma bem simples mesmo.

Exemplo do cadastrar e buscar:

//antes dos testes para definir o tamanho do vetor da classe
@BeforeClass
    public static void Inicializar() {
        cardapio = new Cardapio(1);
    }

@Test
    public void testAdicionarProduto() {
        System.out.println("AdicionarProduto");
        Produto pProduto = new Produto(50, "ssss", 7, 1);
        boolean result = cardapio.AdicionarProduto(pProduto);
        assertEquals(true, 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 = 50;
        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.");
    }

Não é uma boa prática contar com a ordem dos testes.

O ideal é que cada teste seja isolado, e não dependa um do outro. Até porque, os frameworks de testes unitários irão disparar testes em diversas threads, frequentemente isolando classloaders.

Reveja seus testes. Não há mal nenhum em recadastrar seus dados a cada teste. É para isso que servem anotações como @Before.

Engraçado, respondi a mesma dúvida há pouco tempo atrás do GUJ resposta:
http://www.guj.com.br/70-testar-com-junit-ordenando-os-metodos