Lembrando que estou utilizando VRaptor 4.Em 6 de junho de 2014 23:39, Renan Montenegro <rena...@gmail.com> escreveu:
Para que eu possa realizar os testes unitários das validações feitas através do Bean Validation, preciso levantar o contexto do CDI no teste, é isso mesmo ?Grato.
--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-vrapto...@googlegroups.com.
To post to this group, send email to caelum-...@googlegroups.com.
Visit this group at http://groups.google.com/group/caelum-vraptor.
For more options, visit https://groups.google.com/d/optout.
Quando chegar em casa darei uma olhada com mais calma. Qualquer coisa posso até acrescentar na documentação sobre testes.
E desde já obrigado pelas dicas e ajuda na documentação. ;-)
Rodrigo, mas isso é preciso para o caso dos testes de validação com o Bean Validaton, não é ?
Abraço
Esquecendo um pouco os testes, supondo que o parâmetro do meu método está anotado com @NotNull @Valid e dentro do método eu coloco validator.onError....
Só isso já é o suficiente para fazer a validação com o Bean Validation ? Se sim, que exceção é lançada?
Na documentação fala como se só isso seja o suficiente...
Grato.
No entanto da outra forma que você falou usando o ValidatorFactory e nos meus testes chamando o validate, da certo.
Renan, será que faz sentido fazer esse tipo de teste? Você vai basicamente testar se a implementação de bean validation que vc está usando funciona como esperado e se sua classe está anotada corretamente
Você pode usar reflection pra fazer assert nos atributos anotados. Mas mesmo assim esse tipo de teste não faz muito sentido pra mim.
--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-vrapto...@googlegroups.com.
To post to this group, send email to caelum-...@googlegroups.com.
Visit this group at http://groups.google.com/group/caelum-vraptor.
For more options, visit https://groups.google.com/d/optout.
Dizer que não faz sentido é o mesmo que dizer que testar a validação dentro do controller do vraptor não vale a pena, mas sabemos que vale.
@BeforeClass
public static void setUp() {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
validator = factory.getValidator();
}
Depois nos seus testes você chama o validate e faz um assert do
set de ConstraintViolation's que ele retorna.
MockValidator dá a idéia de que você não tem uma classe real, mas sim um mock. Um mock é algo que simula mas que não é. Se no MockValidator validarmos usando uma implementação real do Bean Validation, então não é um mock. Para isso você deve usar a DefaultValidator.
Note que a implementação da MockValidator apenas retorna um this para o chainning. Isso porque a idéia é que ela seja um "falso validador". Ela é útil quando você quer testar seu controller fazendo um bypass na validação.
--
Concordo. Esse é um local para que possamos discutir dúvidas, idéias, etc. E com elas todos nos aprendemos muito.
Abraço