Eu criei alguns testes unitários que se utilizam do Hibernate + Spring, facilitando e muito a minha vida para programá-los.

Mas porém, quando me deparei com algumas MATERIALIZED VIEWs do Oracle, que , somente são atualizadas quando é feito um commit, conforme foram criadas aqui no meu banco de dados, sendo assim, eu precisei fazer commit nas transações do Junit.

O que ocorre é que , eu utilizo como classe pai do meu teste unitário uma classe do Spring que controla as transações, abrindo uma para cada método de teste do TU, e faz com que em todos os momentos seja feito rollback no banco, fazendo com que meu teste unitário não reflita no banco de dados. O que me deixa com o mesmo ambiente de teste sempre, sem alteração. Esta classe é a AbstractTransactionalDataSourceSpringContextTests .

Para buscar o controle da transação corrente eu utilizei 3 métodos  bem interessantes, que estão disponíveis na classe mesmo, são eles:

setComplete() -> Chamando este método antes de terminar o TU, a transação será comitada, e não será feito o rollback padrão.
endTransaction() -> Fecha, acaba com a transação atual.
startNewTransaction() -> Abre, inicia uma nova transação

Assim eu consigo efetuar o commit quando preciso, e na hora em que preciso, persistindo assim os dados no meu banco de dados. Claro, que esta situação é uma exceção, onde eu salvo os dados no banco, que por si só atualiza minha materialized view, consulto novamente os dados para validação, e depois executo um teste de exclusão dos mesmos dados inseridos, comitando também.

Conversando com um colega de trabalho, obtive algumas informações sobre o Spring Framework.
Dentre estas informações, estavam uma que dizia que este fw era o que realmente podemos chamar de framework, onde o mesmo tinha tudo que
necessitávamos para construir uma aplicação do zero facil e rapidamente.
Ou seja, com o Spring fw, temos muitas facilidades, desde nossas classes de negocio, transações, classes de acesso a dados, model-view-controller, etc…
Podemos ler aqui (http://www.theserverside.com/tt/articles/article.tss?l=IntrotoSpring25) com mais detalhes o que o Spring tem a nos oferecer.

Eu sinceramente estou começando agora a aprender a trabalhar com Spring, mas já estou fascinado com tamanha produtividade oferecida por este fw.
E ainda mais quando entro no seu site, na seção de documentação e me deparo com uma documentação vasta, detalhada e muito bem organizada de
todas as suas funcionalidades e características ( http://static.springframework.org/spring/docs/2.5.x/reference/index.html ).

Na real, eu chequei até aqui através do aprendizado do JPA (Java Persistence API), e fiquei bem contente.

Agora, para complpetar o desenvolvimento de uma bela aplicação, basta aprender a programar o ext (http://www.extjs.com), uma biblioteca
java script que é muito completa, para objetos visuais, efeitos de páginas, ajax, e outras cositas mas !

© 2010 Sérgio Berlotto - Blog Pessoal Obrigado por nos visitar ! Assine o RSS para não perder as novidades! Suffusion WordPress theme by Sayontan Sinha