Como faço quando minhas classes não possuem um construtor sem argumentos?

38 views
Skip to first unread message

Fabio Pisaruk

unread,
Oct 23, 2015, 4:21:42 PM10/23/15
to fixture-factory
Olá pessoal,

Estou achando o projeto muito interessante e parabenizo a todos os contribuintes, ams no momento ainda não descobri como posso criar fixtures para classes que não possuem um construtor sem argumentos?

Alguem tem algum idéia do que fazer?

[]'s

Arthur Hirata

unread,
Oct 23, 2015, 5:11:51 PM10/23/15
to fixture...@googlegroups.com
Olá Fábio,

Para funcionar, o nome do atributo e o nome do parâmetro no construtor devem ser iguais. Por exexmplo:

    public class Foo {

        private String bar;

        public Foo(String bar) {
            this.bar = bar;
   
    }
    }

Daí você define o template normalmente. Seguindo o exemplo acima, poderíamos ter:

        Fixture.of(Foo.class).addTemplate("foobar", new Rule() {{
            add("bar", regex("\\w{4}"));
        }});



[]s
Arthur



De: Fabio Pisaruk <fabio....@vagas.com.br>
Para: fixture-factory <fixture...@googlegroups.com>
Enviadas: Sexta-feira, 23 de Outubro de 2015 18:21
Assunto: Como faço quando minhas classes não possuem um construtor sem argumentos?

--
Você recebeu essa mensagem porque está inscrito no grupo "fixture-factory" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para fixture-facto...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.


Fabio Pisaruk

unread,
Oct 26, 2015, 9:35:18 AM10/26/15
to fixture...@googlegroups.com
Oi Arthur, tudo bem?

Obrigado pela ajuda. Eu acabei olhando os testes do seu projeto e encontrei mais exemplos.
O problema que estou tendo agora é um pouco diferente: minha classe recebe um objeto no construtor e, após o parser, define as suas propriedades. Por conta disso, não estou conseguindo utilizar o fixture-factory.
Exemplo:

class Pessoa
    private String nome;
    private String sobrenome;
    
    public Pessoa(Hashtable dados){
        this.nome = dados.get("nome");
        this.sobrenome = dados.get("sobrenome");
    }

Teria como utilizar o seu projeto nesse caso?
Entendo que uma outra solucao seja refatorar o codigo extraindo o Parser para outra classe, deixando assim a classe Pessoa apenas como um Value Object.

Abracos. 


-- 

Fábio Pisaruk
Tecnologia | VAGAS Tecnologia
 
Tel: (11) 4084.1111 ou (xx) 4007.1547
VAGAS

--
Você recebeu essa mensagem porque está inscrito em um tópico no grupo "fixture-factory" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/fixture-factory/6c5zei1QCfg/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para fixture-facto...@googlegroups.com.

Arthur Hirata

unread,
Oct 27, 2015, 3:34:10 PM10/27/15
to fixture...@googlegroups.com
Olá Fábio,

Realmente, do jeito que está, o fixture não vai servir.

O framework não gera Hash(table|Map) e, mesmo que você criasse uma Function para gerar uma do jeito que você precisa, não daria para usar no template pois, pelo que eu entendi, não existe um atributo para hashtable.

[]s




De: Fabio Pisaruk <fabio....@vagas.com.br>
Para: fixture...@googlegroups.com
Enviadas: Segunda-feira, 26 de Outubro de 2015 11:35
Assunto: Re: Como faço quando minhas classes não possuem um construtor sem argumentos?
Reply all
Reply to author
Forward
0 new messages