Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 9 Próxima »

O PROBAT procura no RPO por classes e funções que utilizam por determinadas annotations para a execução dos testes.

No exemplo usado com a implementação básica de um teste com classe, tivemos a utilização de duas annotations, são elas:

[TestFixture]
[Test]
Abaixo vamos resumir como a mágica acontece!

Portanto, detalharemos através dos passos de A a G.


[A]

Veja o trecho de nosso exemplo:

#include "tlpp-core.th"
#include "tlpp-probat.th"

@TestFixture()
class test_sample
A annotation [TestFixture] serve para marcar a classe ou função como um dispositivo de teste.

Somente através dessa marcação é que o PROBAT consegue descobrir quais são as classes ou funções específicas de testes.

Um ponto importante é que para fazer uso da annotation referida é preciso importar a include exclusiva do PROBAT fazendo a inserção da instrução logo no começo do fonte: [#include "tlpp-probat.th"]


[B]

Veja esse outro trecho do mesmo exemplo:

@Test('Sample test for the engine manual.')
public method sampleTest()
Nesse trecho do código, marcamos o método sampleTest() como um método a ser executado durante os testes através da annotation [Test].

Importante ressaltar que a descrição do teste, feito através do primeiro parâmetro da annotation, é obrigatório pois ele passará por uma função que faz essa validação.

NOTA: Se você declarar uma classe com [TestFixture] e não tiver nenhum método com annotation [Test], seu teste começará a ser executado, porém gerará um resultado do tipo SKIPPED.

[C]

Outro ponto importante para a correta configuração, é utilizar o recurso de namespace.

Veja o trecho:

namespace   test.unit.sample
Em nosso exemplo, utilizamos o nome do diretório onde se localiza a implementação do teste, ou seja, test/unit/sample.

Essa informação é importante para fácil localização física dos fontes de testes, afinal ele estará identificado como FOLDER, tando na gravação do SQLite como no XML gerado.

Exemplo:

<testcase id="1" name="Class:TEST.UNIT.SAMPLE.TEST_SAMPLE():New() | Method:SAMPLETEST()" time="0.002"  description="Sample test for the engine manual." >
  Folder: TEST/UNIT/SAMPLE/ | Description: U_SAMPLE( cTest ) | Assert: TLPP.PROBAT.ASSERTEQUALS | Call From: TEST_SAMPLE.TLPP:57 | Expected: {C}-[test_1] | Result: {C}-[test_1]
</testcase>


Outro modo de informar o FOLDER é através da propriedade da annotation, segue:

@Test('Sample test for the engine manual.',folder='test/unit/sample')
public method sampleTest()
Nesse caso, o PROBAT irá priorizar o valor informado pela annotation.


[D]

Uma obrigatoriedade é o uso de duas includes, são elas:

#include "tlpp-core.th"
#include "tlpp-probat.th"

  • A include [tlpp-core.th] só é obrigada nesse exemplo pois escrevemos o teste com classe, pois caso tivéssemos criado o teste com função não precisaríamos.

  • A obrigatoriedade da include [tlpp-probat.th] será para todos os testes, pois é nela que se encontram as definições das annotations, comandos e instruções usadas pelo PROBAT.



  • Sem rótulos