acdcjunior / spring-mvc-jpa-mockito-example

Spring MVC JPA/Mockito test infrastructure example app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

spring-mvc-jpa-mockito-piloto

Aplicacao "Piloto" minimalista mostrando o uso de Spring MVC + JPA/Hibernate + Testes com Mockito.

##Como usar:

Pronto!

###Detalhes pequenos, mas importantes:

  • O mvn tomcat7:run utiliza o banco de testes conforme scripts em src/test/resources/sql. O banco criado eh o bancoH2tomcatRun.h2.db na pasta do projeto -- note que ele eh apagado/recriado a cada execucao.
  • Os testes tambem utilizam os mesmos scripts SQL acima como dados, mas eles criam um banco em memoria (que eh recriado a cada execucao de metodo de teste).
  • mvn cobertura:cobertura gera o relatorio de cobertura de testes em /target/site/cobertura/index.html.
  • Edicoes em paginas .jsp vao ser refletidas imediatamente na aplicacao sem necessidade de reiniciar.
  • Edicoes em classes .java ainda requerem restart! (Maven nao recompila os .java assim que eles sao editados -- para conseguir que as edicoes em classes repercutam automaticamente, execute o projeto via um tomcat do eclipse, como sempre se fez.)

##Overview de tecnologias usadas:

  • Maven
  • Spring e Spring MVC 3.2.5
  • JSP + Tiles 3.0.3 como View Technology
  • Persistencia
    • JPA 2.0
    • Hibernate 4.2.7.SP1 como implementacao JPA
    • H2 como banco de exemplo e de testes
  • Testes
    • JUnit 4.11
    • Mockito 1.9.5 + Hamcrest matchers 1.3
    • Spring-Test
    • Relatorio de cobertura de testes com Cobertura 2.6

##Objetivos/filosofia

O objetivo da aplicacao eh fornecer infraestrutura de exemplo para:

  • Controladores Spring MVC
  • Entidades e queries do JPA 2.0
  • Testes de controladores e de repositorios (com banco embarcado)
  • Fomentar o TDD com testes infraestrutura jah preparados para todas as partes do sistema

##Outros/detalhes do uso

  • Como nao eh possivel ter <link rel="stylesheet"> no <body>, os nomes dos arquivos css sao definidos no tiles.xml, junto com a view.

##Futuro

  • Renomeacao dos arquivos JSP e como sao organizados em pastas para um modelo que seja adequado ateh a maiores sitemas (com dezenas de JSPs)
  • Adicao de controlador retornando JSON e exemplo de jQuery consumindo o JSON
  • Aplicacao de conceitos exemplo de Domain-Driven Design

About

Spring MVC JPA/Mockito test infrastructure example app


Languages

Language:JavaScript 55.1%Language:Java 42.7%Language:CSS 2.2%