Validação na regra de negócio (model)

Pessoal,

Como vcs fazem a validação de uma regra de negócio?
Por exemplo, no meu action vejo o saldo disponível de um produto e caso esse seja menor que a quantidade requisitada quero exibir uma mensagem para o usuário.
Dá (e é viável) fazer isso usando o struts validator? Como vc fazem isso?

Muito obrigado,

Marques

Eu nao dependeria de um framework pesadao como o Struts pra esse tipo de coisa, mas se vc nao pretende usar nada alem dele (ou seja, nao vai ter tambem um cliente Swing pro brinquedo) e conseguiu bolar um jeito bacana de escrever testes unitarios pra essas regras, manda ver :slight_smile:

E se ele pretendesse, o que poderia usar?
Como você faz este tipo de teste?

Você quer validar sua lógica ou seus parâmetros?

Se quer valdiar sua lógica, RETIRE ELA de uma Action, crie os objetos do seu domínio e use JUnit para testá-los.

Se quer valdiar parâmetros, o validator é legal.

Acho que eu não soube me expressar muitp bem. A minha regra está validada. O que presiso é avisar ao usuario: Não temos esse material em estoque…

Acho que eu não soube me expressar muitp bem. A minha regra está validada. O que preciso é avisar ao usuario: Não temos esse material em estoque… Ou seja:
if ( estoque < qtdeSolicitada)
exibir um alert

Acho que vc deve dar uma estudada no Struts Validator pra te responder essa pergunta, basicamente vc deve lançar um ActionError ou ActionMessage depois no seu jsp/velocity/etc resolver como exibí-lo, seja no proprio html, alerts, etc.

Dá uma estudada a fundo no validator.

[]'s

Eduardo

Não sei se esta é uma boa prática… darei a sugestão mas gostaria de alguém corrigisse caso eu esteja errado!!

Talvez fosse legal fosse lançar uma exceção de dentro da seu objeto de negócio, quando alguma validação não passasse!!!

Tipo, cria um método validar e se encontrar algum erro, lança a exceção, e dentro da exceção coloca a mensagem que vc quer se seja exibida!!!

Me corrijam se essa é uma péssima solução… Tenho dúvidas se isso é uma boa prática!

Abraços!