1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

JUnit 4.x e sua ordem de execução

Galera... construí um teste unitário utilizando o JUnit 4.x para executar os métodos na seguinte ordem:

Retorna Produto
Adiciona Produto
Atualiza Produto
Retorna Lista de Produtos
Remove Produto

porem a classe de teste esta gerando uma ordem aleatória, se eu altero a posição dos métodos ela continua aleatória, ainda não entendi a logica de ordenação do JUnit para que eu possa organizar meus métodos e executa-los nesta ordem que postei acima.

Consequentemente... alguns métodos que não ficaram na ordem, falham por falta de id!

public class ProductDAOTest {

    private static Integer id = 0;

    public ProductDAOTest() {
    }

    @BeforeClass
    public static void setUpClass() {

    }

    @AfterClass
    public static void tearDownClass() {

    }

    @Before
    public void setUp() {

    }

    @After
    public void tearDown() {

    }

    @Test
    public void testGetProduct() throws Exception {
        System.out.println("Retorna Produto");
        ProductDAO instance = new ProductDAO();
        Product expResult = null;
        int idProduct = id;
        Product result = instance.getProduct(idProduct);
        assertEquals(expResult, result);
    }

    @Test
    public void testAddProduct() throws Exception {
        System.out.println("Adiciona Produto");
        Product prod = new Product();

        prod.setName("LIVRO BACKTRACK LINUX");
        prod.setPrice(50f);
        prod.setStock(20);

        ProductDAO instance = new ProductDAO();
        id = instance.addProduct(prod);
        assertTrue(id > 0);
    }

    @Test
    public void testUpdateProduct() throws Exception {
        System.out.println("Atualiza Produto");
        ProductDAO instance = new ProductDAO();

        Product prod = instance.getProduct(id);
        prod.setName("BACKTRACK LINUX - EDITORA CIENCIA MODERNA");
        instance.updateProduct(prod);

        prod = instance.getProduct(id);
        assertEquals(prod.getName(), "BACKTRACK LINUX - EDITORA CIENCIA MODERNA");
    }

    @Test
    public void testGetAllProducts() throws Exception {
        System.out.println("Retorna Lista de Produtos");
        ProductDAO instance = new ProductDAO();
        List result = instance.getAllProducts();
        assertTrue(result.size() > 0);
    }

    @Test
    public void testRemoveProduct() throws Exception {
        System.out.println("Remove Produto");
        ProductDAO instance = new ProductDAO();
        instance.removeProduct(id);
        assertNull(instance.getProduct(id));
    }
}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java junit ou faça a sua própria pergunta.