logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!

Junit – Testando Métodos Privados com Reflection

Colocado por Janderson Cardoso na(s) categoria(s): Dica, Java, Reflection, Ria’s Geral em 04 26th, 2010 | Sem comentários


 Junit   Testando Métodos Privados com Reflection

Olha ele aí, o sumido Janderson Futebol Clube de volta… hehe porém uma volta rápida :P

Uma das maiores utilidades no momento na minha opnião se chama Twitter, mas especificamente uma tag que acompanho de perto chamada #soudev, que é uma espécie de agromerado de maluco que ficam falando de programação e afins o dia todo, e em uma dessas o @edipofederle fez uma sábia e curioasa pergunta…

Como testar Métodos privados?

a primeira coisa que me veio a mente foi, criar um metodo público, claro!? mas… e as boas práticas, estou criando um método por causa dos meus testes, os testes estão afetando minha codificação, tem algo errado, e em fração de segundos, me veio outra solução que o java me proporciona, usar REFLECTION,

e reflexão não é um bicho de 7 cabeças mas costuma ser um dos lugares menos frequentados para quem não tem muito dominio do Java, mostrarei como é simples neste momento testar seus métodos privados através de Reflection.

ServiceSample.java

PLAIN TEXT
JAVA:

  1. public class ServiceSample {
  2.  
  3. private Boolean hello(Boolean print){
  4. if (print){
  5. System.out.println(“me testa aí, se vc é #soudev de verdade.”);
  6. }
  7. return print;
  8. }
  9.  
  10. }

e a classe de teste

ServiceSampleTest.java

PLAIN TEXT
JAVA:

  1. public class ServiceSampleTest extends TestCase {
  2.  
  3. public void testPrivateMethod() throws Exception {
  4.  
  5. //intancia minha classe
  6. ServiceSample sample = new ServiceSample();
  7.  
  8. //digo quantos parametros meu metodo tem
  9. Class params[] = {Boolean.class};
  10.  
  11. //informo qual o metodo que quero acessar
  12. Method methodHello = sample.getClass().getDeclaredMethod(“hello”, params);
  13.  
  14. //o pulo do gato, se é método privado informo que posso acessa-lo ;)
  15. methodHello.setAccessible(true);
  16.  
  17. //chamo a função que me retorna um boolean, setei true para sempre dar certo, só testa galera
  18. Boolean retorno = (Boolean) methodHello.invoke(sample, true);
  19.  
  20. assertEquals((Boolean)true, retorno);
  21.  
  22. }
  23.  
  24. }

viu como é fácil, talvez alguns ainda fiquem assustados mesmo com os comentários no código, mas garanto que 30 minutos lendo sobre Reflection vc vai perceber como é útil e vai te ajudar muito daqui para frente ;)

Referências:

Testes Unitários de Métodos privados Genérico:

http://www.artima.com/suiterunner/private.html

Leitura Recomendada:

http://www.urubatan.com.br/java-tem-espelhos-e-o-mago-deve-saber-jogar-com-eles-basico-da-reflexao/

Espero que aproveitem a dica ;)

Cumps.

  • Share this on del.icio.us
  • Digg this!
  • Share this on Reddit
  • Share this on Technorati
  • Share this on Facebook
  • Tweet This!
  • Subscribe to the comments for this post?
  • Share this on FriendFeed
  • Send this page to Print Friendly

Similar Posts:

  • TUTORIAL JAVA + FLEX NA PRÁTICA 2/6
  • TUTORIAL JAVA + FLEX NA PRÁTICA 1/6
  • Calculo em flex corretamente
  • TUTORIAL JAVA + FLEX NA PRÁTICA (8) – Datas
  • TUTORIAL JAVA + FLEX NA PRÁTICA 7/6 – Bônus

 Junit   Testando Métodos Privados com Reflection



Veja o post original no blog do autor aqui!  

Janderson Cardoso

Escrito por Janderson Cardoso @ http://www.jandersonfc.com/
Saiba mais sobre o autor na sua pagina de perfil
Outros posts do autor:
» Sou Papai, Murilo chegou!
» O poder da network
» #soudev Entenda essa Campanha e Participe!

Deixe um comentário



Spam Protection by WP-SpamFree

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2750 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com