Pergunta

é um novo (ou diferente) instância de objeto TestCase é usada para executar cada método de teste em um caso de teste JUnit? Ou uma instância é reutilizado para todos os testes?

public class MyTest extends TestCase {
  public void testSomething() { ... }
  public void testSomethingElse() { ... }
}

Ao executar este teste, quantas instâncias da classe MyTest é criado?

Se possível, fornecer um link para um código de documento ou fonte onde eu possa verificar o comportamento.

Foi útil?

Solução

Eu não poderia encontrar uma resposta clara nos docs JUnit sobre sua pergunta, mas a intenção, como anjanb escreveu, é que cada teste é independente dos outros, por isso, uma nova instância TestCase poderia ser criado para cada teste a ser prazo.

Se você tem configuração de teste caro ( " luminárias ") que pretende ser compartilhado entre todos os casos de teste em uma classe de teste, você pode usar o @BeforeClass anotação em um método estático para alcançar este resultado: http://junit.sourceforge.net /javadoc_40/org/junit/BeforeClass.html. Nota no entanto, que uma nova instância ainda podem ser criados para cada teste, mas isso não afetará os dados estáticos seu método @BeforeTest foi inicializado.

Outras dicas

Sim, uma instância separada é criado.

Ao executar esse teste, 2 casos de MyTest é criado.

Se você quer um comportamento diferente, uma opção é usar uma ferramenta similar chamado TestNG ( http://testng.org / doc / ).

Não há uma instância para cada teste. Tentar

public class MyTest extends TestCase {
  public MyTest() { System.out.println("MyTest Constructor");
  public void setUp() { System.out.println("MyTest setUp");
  public void tearDown() { System.out.println("MyTest tearDown");
  public void testSomething() { System.out.println("MyTest testSomething");
  public void testSomethingElse() { System.out.println("MyTest testSomethingElse");
}

O Sourcecode (incluindo que a versões mais recentes - o seu eo meu exemplo é JUnit 3) está na http: // www. junit.org

Se você está perguntando isso porque você está preocupado com os dados que está sendo inicializado e re-inicializada em seu construtor, estar ciente de que a forma prescrita para inicializar seus dados de casos de teste é via setup () e tearDown () exclusivamente.

Sim, definitivamente. Eu achei que os dados que eu armazenados em variáveis ??de instância não pôde ser acessado entre os testes devido ao seu design.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top