Gerador de dados Fake  XML
Índice dos Fóruns » Assuntos gerais necessariamente ligados a tecnologia
Autor Mensagem
esantana
JavaBaby
[Avatar]

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 !!!
[Email] [Yahoo!] [MSN]
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
saulods
JavaEvangelist
[Avatar]

Membro desde: 13/09/2007 15:28:22
Mensagens: 301
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


[MSN]
Eduardo Bregaida
Moderador
[Avatar]
Membro desde: 13/11/2003 14:11:35
Mensagens: 2463
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
[Email] [WWW] [MSN]
renatocustodio
Java Ninja
[Avatar]

Membro desde: 04/03/2008 07:21:24
Mensagens: 262
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.
[WWW]
Thiago Senna
GUJ Master
[Avatar]

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.
[Email]
alucardeck
GUJ Master
[Avatar]

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
Fox McCloud
JavaEvangelist
[Avatar]

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
esantana
JavaBaby
[Avatar]

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 !!!
[Email] [Yahoo!] [MSN]
esantana
JavaBaby
[Avatar]

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 !!!
[Email] [Yahoo!] [MSN]
esantana
JavaBaby
[Avatar]

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 !!!
[Email] [Yahoo!] [MSN]
luistiagos
GUJ Expert
[Avatar]

Membro desde: 10/07/2006 10:37:23
Mensagens: 3277
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...

Luis Tiago Andrighetto Hablich





SCJP 1.5
SCJA 1.0
IBM Certified Database Associate - DB2 9
IBM Rational Team Concert
[Email] [MSN]
robertogeller
Smalltalk
[Avatar]

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...)
esantana
JavaBaby
[Avatar]

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 !!!
[Email] [Yahoo!] [MSN]
 
Índice dos Fóruns » Assuntos gerais necessariamente ligados a tecnologia
Ir para:   
Powered by JForum 2.1.8 © JForum Team