An open API service indexing awesome lists of open source software.

https://github.com/acdcjunior/spring-mvc-jpa-mockito-example

Spring MVC JPA/Mockito test infrastructure example app
https://github.com/acdcjunior/spring-mvc-jpa-mockito-example

Last synced: over 1 year ago
JSON representation

Spring MVC JPA/Mockito test infrastructure example app

Awesome Lists containing this project

README

          

spring-mvc-jpa-mockito-piloto
=============================

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

##Como usar:

- Baixe a aplicacao (pegue o **[ZIP aqui](https://github.com/acdcjunior/spring-mvc-jpa-mockito-piloto/archive/master.zip)**, ou via `git clone`)
- Vah na pasta e digite `mvn tomcat7:run` --> **NÂO** é `tomcat`, é `tomcat7`! 7!
- Abra a URL **http://127.0.0.1:8080/piloto**

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 `` no ``, 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](http://en.wikipedia.org/wiki/Domain-driven_design)