Versão atual:

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

Versões(2):

Ver a versão formatada

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

Comentário

new question