Estou começando a usar testes unitários e estou com uma duvida meio boba. Estou escrevendo testes para uma classe de geração de relatórios, essa classe gera os relatórios dentro do WebContent da aplicação, porem o endereço do WebContent é colocado em uma variável quando o tomcat inicializa (listener), logo quando executo o teste com junit a variável esta nula e pra piorar o método que seta essa variável esta encapsulado no pacote de infraestrutura e o pacote onde o teste fica não pode setar manual.
Como eu resolvo esse problema de forma correta?
Estou começando a usar testes unitários e estou com uma duvida meio boba. Estou escrevendo testes para uma classe de geração de relatórios, essa classe gera os relatórios dentro do WebContent da aplicação, porem o endereço do WebContent é colocado em uma variável quando o tomcat inicializa (listener), logo quando executo o teste com junit a variável esta nula e pra piorar o método que seta essa variável esta encapsulado no pacote de infraestrutura e o pacote onde o teste fica não pode setar manual.
Como eu resolvo esse problema de forma correta?
vlw
[/quote]
Voce quer testar a geracao do relatorio propriamente dita ou a logica da geracao. Por exemplo, caso seja tal coisa deve utilizar tal e tal classe para imprimir o relatorio?
Escrever testes para uma classe de geracao de relatorios eh muito vago, mas o que da pra ter certeza é que voce nao consegue ter testes unitarios para a geracao de um jasper ou um pdf, pelo menos nao de uma forma que valha a pena. Se a logica de geracao for muito complexa, por exemplo, podendo definir qual entre os 18 tipos pode gerar, voce deve isolar a geracao do relatorio, extraindo interfaces ou algo parecido, e se concentrar em testar a criacao da logica de cada um destes tipos.
Se o que voce precisa é realmente testar se o relatorio gera ou nao, na pasta certa, do tamanho certo, no formato certo, entao voce nao esta precisando de testes unitarios e sim de testes de integracao.