5
respostas

Sequencia de Testes de Classes e Métodos

Existe alguma forma de sequenciar as classes e métodos que serão testados?

Observei que existe a seguinte anotação para sequencia de classes

@RunWith(Suite.class)

@Suite.SuiteClasses({
        TestClass2.class,
        TestClass1.class
})

e para sequencia de métodos

@FixMethodOrder(MethodSorters.NAME_ASCENDING)

Acredito que se existisse alguma leitura de algum xml onde seria informado a ordem de classes a serem executadas seria de compreensão mais facilitada.

E para os métodos alguma anotação no sentido @Test1 @Test2.

Existe somente essas abordagens?

5 respostas

Oi Rafael, tudo bem ?

Tem algumas formas de fazer isso.

Uma das formas é que você pode usar o atributo priority e passar um numero que represente a prioridade.

Contudo não é obrigatório que isso role nessa sequencia.

Os próprios devs do JUnit falaram que a ordem dos testes não deviam importar, dado que um cenário é totalmente independente do outro.

Esse atributo priority, seria utilizado em qual anotação?

Perdão, seria utilizado na anotação @Test

Desculpe, mas na anotação @Test não tem essa propriedade.

Utilizando @Test do pacote org.junit.Test

Rafael, de boa?

Cara, achei que estivesse usando outra lib, foi mal.

Para o Junit, você pode usar uma outra anotação chamada FixMethodOrder -> http://junit.org/junit4/javadoc/latest/org/junit/FixMethodOrder.html

Que ele consegue fazer os métodos serem chamados um atrás do outro, mas você teria que fazer algo assim : test1() -> test2() -> test3()

Dessa forma vai ser sequencial, mas você perde a semantica do teste.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software