Duvida sobre mock JUnit

Pessoal, bom dia!

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=mauricioadl]Pessoal, bom dia!

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.

O meu caso seria esse mesmo, por ter inúmeras formas de gerar os relatórios.

vlw! vou pesquisar sobre assunto.

[]'s