| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/07/2008 10:44:00
|
esantana
JavaBaby
![[Avatar]](/images/avatar/2ebb6c06bdc16ef37ec965c6b325b5c6.jpg)
Membro desde: 20/10/2006 17:54:23
Mensagens: 93
Offline
|
Bom dia à todos !
Sei que pode parecer estranho este tipo de necessidade, mas eu preciso de um gerador de dados
fake,
para ser mais específico, preciso de uma classe utilitaria com um metodo
para o qual eu passe um bean e ela se encarregue de preencher todos os membros do meu bean
e todos os membros dos beans que são membros do primeiro bean recursivamente com dados
aleatórios.
Se alguém souber de algo que faça isso, realmente iria me ajudar demaaais !
Valeu gente !!
|
Emmanuel Santana
SCJP, SCWCD, SCBCD, SCEA 90% !!! Na Endlich !!!
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/07/2008 10:53:54
|
loureiro
What is classpath?
Membro desde: 03/12/2007 16:19:27
Mensagens: 5
Offline
|
Já precisei disso um dia so bad. Até hoje n vi nada que se adequasse.
|
SCJP - 58.99999999... %
SCWCD - 61.9888888,30 centavos
Psicotécnico do detran - 10%
Vestibulinho 89 do Grilinho Falante - 80%
MMGM (Minha Mãe Gosta de Mim) Certified |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/07/2008 11:04:58
|
saulods
Java Ninja
![[Avatar]](/images/avatar/992293aa502a94d9d76d1d0313c00873.jpg)
Membro desde: 13/09/2007 15:28:22
Mensagens: 299
Offline
|
Opa.. q interessante sua pergunta, é muito util... sem isso perdemos muito tempo.
Ótima Pergunta... amigo
|
"...Quem esconde Conhecimento, esconde a si próprio!!!"
VEJA ::::
http://www.pregadoresdotelhado.org.br/pregacao/index.php
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/07/2008 12:24:04
|
Eduardo Bregaida
Moderador
Membro desde: 13/11/2003 14:11:35
Mensagens: 2416
Localização: São Caetano do Sul - SP
Offline
|
Deixa eu ver se entendi.
vc quer uma classe que popule seus dados para testes?
vc poderia criar uma classe q sempre setasse os valores, o problema é q para cada caso teria q ter uma classe Fake só para setar esses dados.
|
Blog - Java Anywhere
@bregaida - Twitter
Flickr - Fotos
Cursos de Java?
"Você poderia me dizer, por favor, qual caminho eu devo seguir?"
"Isto depende muito de onde você deseja chegar."
-Lewis Carroll, Alice no País das Maravilhas |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/07/2008 12:36:37
|
renatocustodio
JavaGuru
![[Avatar]](/images/avatar/7e3da1dca2700e3225382921dd70b8c7.jpg)
Membro desde: 04/03/2008 07:21:24
Mensagens: 249
Offline
|
Seguindo a lógica do cara aí de cima poderia ser feito usando reflection. Vc pega os "declaredFields" de um object qualquer, vê o tipo de dados deles, gera um valor aleatório e joga lá dentro.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/07/2008 12:38:24
|
Thiago Senna
GUJ Master
![[Avatar]](/images/avatar/78719f11fa2df9917de3110133506521.jpg)
Membro desde: 11/02/2005 08:08:02
Mensagens: 1595
Offline
|
Eu faço mais ou menos assim. Se você tem um UsuarioDAO e uma implementação UsuarioMySQLDAO, cria um UsuarioInMemoryDAO. Este por sua vez salva em memória usando java.util.Map. Depois crie uma classe que popula o DAO. Não é tão trabalhoso. Você pode usar estratégias (pattern Strategy) para gerar os Id's e até mesmo criar um DAO genérico para persistir em memória.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/07/2008 13:10:49
|
alucardeck
GUJ Master
![[Avatar]](/images/avatar/441314de551ba5a9d38a4e3dd91bb80f.jpg)
Membro desde: 23/01/2007 00:49:50
Mensagens: 1023
Localização: Santos-SP
Offline
|
olha.. jah passei pro um problema parecido pra testar algumas classes...
precisava de uma tabela MySQL bem preenchida..
no caso eram apenas o ID (automatico), uma string e um inteiro..
entao eu criei uma classe q executou um loop 1000x com comandos de Insert pro BD...
o int era randomico.. entre 1 e 100..
e pra gerar a string q foi o problema.. entao acabei criando uma array de 10 strings, e sorteava 1 numero de 1-10 para escolher qual delas seria inserida na linha...
será q nao eh possivel fazer nada parecido?
This message was edited 1 time. Last update was at 14/07/2008 13:12:06
|
The road to hell is full of good intentions
Say farewell, we may never meet again
jChat Malandrinho --> http://www.guj.com.br/posts/list/100549.java
Linkedin --> http://br.linkedin.com/pub/diogo-facin/26/436/113 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/07/2008 13:16:24
|
Fox McCloud
JavaEvangelist
![[Avatar]](/images/avatar/8860a4e27cbbe4c63821b429211684a3.jpg)
Membro desde: 29/06/2005 09:29:46
Mensagens: 440
Offline
|
renatocustodio wrote:Seguindo a lógica do cara aí de cima poderia ser feito usando reflection. Vc pega os "declaredFields" de um object qualquer, vê o tipo de dados deles, gera um valor aleatório e joga lá dentro.
Eu já implementei uma solução assim, funcionou mto bem no meu caso...
Vou postar o código, foi criado para uma necessidade específica aqui, adeque de acordo com a sua necessidade...
Já adiantando que rodei isso no Java 5...
|
"Denial is the most predictable of all human responses" - Matrix Architect |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/07/2008 18:47:47
|
esantana
JavaBaby
![[Avatar]](/images/avatar/2ebb6c06bdc16ef37ec965c6b325b5c6.jpg)
Membro desde: 20/10/2006 17:54:23
Mensagens: 93
Offline
|
Valeu a todos pelas respostas,
No caso o que eu estou precisando mesmo eh algo bem generico,
vou passar um bean e o meu metodo vai preencher todos os campos dentro do bean com
valores randomicoes ou padroes como :
para String, preencher com ("Joao_" + ((int)(Math.random()*1000)) )
para Integer, preenhcer com ((int)(Math.random()*1000))
e assim por diante, se encontrasse um outro bean dentro deste bean,
chamaria novamente esta funcao com esse bean no parametro e assim vai, recursivamente. Se encontrar
uma collection, (isso nao eh muito, hmm ... digamos .... elegante) vai pegar o tipo do primeiro cara da collection, e subentendendo
que a collection so vai ter classes desse tipo, se elas forem beans, chama a mesma funcao para cada um dos beans da collection ...
No caso, a solucao que mais se encaixa eh a do Fox (by the way, love that game)
porem preciso que seja java 1.4, pois o projeto em questao eh
java 1.4 ....
nao eh tao dificil de fazer nao, estou fazendo aqui com java 1.4, assim que tiver terminado vou postar aqui no
guj a solucao encontrada.
Valeu gente !!!
|
Emmanuel Santana
SCJP, SCWCD, SCBCD, SCEA 90% !!! Na Endlich !!!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2008 08:55:52
|
esantana
JavaBaby
![[Avatar]](/images/avatar/2ebb6c06bdc16ef37ec965c6b325b5c6.jpg)
Membro desde: 20/10/2006 17:54:23
Mensagens: 93
Offline
|
Pronto,
era mais ou menos isso que eu estava precisando,
fiz junto com um colega meu aqui do trabalho.
Estamos usando java 1.4 por isso criar fake Collections nao
seria possivel de maneira, digamos ... elegante ....
Testei com um bean que criei aqui, se puderem,
por favor testem ai tambem.
Para mim serviu muito bem.
Valeu gente, Falows !!
|
Emmanuel Santana
SCJP, SCWCD, SCBCD, SCEA 90% !!! Na Endlich !!!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2008 09:33:53
|
esantana
JavaBaby
![[Avatar]](/images/avatar/2ebb6c06bdc16ef37ec965c6b325b5c6.jpg)
Membro desde: 20/10/2006 17:54:23
Mensagens: 93
Offline
|
Ahh ... gente,
não esquecendo agradecimentos especiais ao Bob Perillo (RobertoGeller) aqui do Forum, que me passou alguns bons princípios de reflection ontem.
Abraço à todos !
|
Emmanuel Santana
SCJP, SCWCD, SCBCD, SCEA 90% !!! Na Endlich !!!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2008 09:40:00
|
luistiagos
GUJ Expert
![[Avatar]](/images/avatar/98785ca89cfbbe933921bfe68a94553b.jpg)
Membro desde: 10/07/2006 10:37:23
Mensagens: 3161
Offline
|
pelo que vejo estas classes geram qualquer tipo de dados dependendo do tipo.... porem para algo mais sofisticado e com validações é algo mais trabalhoso... para testar as validações... exemplo cpf ou cnpj tem um algoritimo de digito verificador... cep tem um esquema de validação... o interessante seria criar uma classe de teste utilitaria que pegasse campos como cnpj/cep e campos de validações e implementasse uma arvore de eventos de teste... mas é algo bem chatinho de se fazer...
|
SCJP 1.5
SCJA 1.0
IBM DB2 Associate |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2008 09:54:02
|
robertogeller
Smalltalk
![[Avatar]](/images/avatar/80258ecebc13a948981212d2e46805e0.jpg)
Membro desde: 15/07/2008 09:08:34
Mensagens: 2
Offline
|
Fala Manu!
Eu tava vendo aqui seu código, ficou muito bom! Eu falei ontem pra vc q o céu o limite e vc levou a sério hein!
Bom, só umas dicas de boas práticas: referencie o HashMap com Map, e use o startsWith ao invés substring.
Mas ficou show, man. Congrats!
This message was edited 1 time. Last update was at 15/07/2008 09:55:08
|
Cheers,
Bob "John Lennon" Perillo
SCJP
SCWCD
SCJD (Waiting for results...) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2008 15:44:39
|
esantana
JavaBaby
![[Avatar]](/images/avatar/2ebb6c06bdc16ef37ec965c6b325b5c6.jpg)
Membro desde: 20/10/2006 17:54:23
Mensagens: 93
Offline
|
pelo que vejo estas classes geram qualquer tipo de dados dependendo do tipo.... porem para algo mais sofisticado e com validações é algo mais trabalhoso... para testar as validações... exemplo cpf ou cnpj tem um algoritimo de digito verificador... cep tem um esquema de validação... o interessante seria criar uma classe de teste utilitaria que pegasse campos como cnpj/cep e campos de validações e implementasse uma arvore de eventos de teste... mas é algo bem chatinho de se fazer...
Então, a intensão inicial era adaptar o código à nossa necessidade aqui na empresa.
Porém o algoritmo pode ser muito melhorado, e é claro, pode-se colocar outros tipos de validação como vc mesmo citou, porém isso vai ficar para a proxima versão, por enquanto esse ai está nos sendo bem útil.
Quando tiver um tempo, vou tentar fazer um legal usando java 5.
Valeu pelas dicas Bob !
|
Emmanuel Santana
SCJP, SCWCD, SCBCD, SCEA 90% !!! Na Endlich !!!
|
|
|
 |
|
|