caelum-java-testes-jsf-web-services-design-patterns-fj22
182 pág.

caelum-java-testes-jsf-web-services-design-patterns-fj22


DisciplinaPrimefaces3 materiais12 seguidores
Pré-visualização39 páginas
Conheça mais da Caelum.
Cursos Online
www.caelum.com.br/online
Blog Caelum
blog.caelum.com.br
Newsletter
www.caelum.com.br/newsletter
Facebook
www.facebook.com/caelumbr
Twitter
twitter.com/caelum
Casa do Código
Livros para o programador
www.casadocodigo.com.br
Sobre esta apostila
Esta apostila daCaelumvisa ensinar de umamaneira elegante, mostrando apenas o que é necessário e quando
é necessário, no momento certo, poupando o leitor de assuntos que não costumam ser de seu interesse em
determinadas fases do aprendizado.
A Caelum espera que você aproveite esse material. Todos os comentários, críticas e sugestões serão muito
bem-vindos.
Essa apostila é constantemente atualizada e disponibilizada no site da Caelum. Sempre consulte o site para
novas versões e, ao invés de anexar o PDF para enviar a um amigo, indique o site para que ele possa sempre
baixar as últimas versões. Você pode conferir o código de versão da apostila logo no nal do índice.
Baixe sempre a versão mais nova em: www.caelum.com.br/apostilas
Esse material é parte integrante do treinamento Laboratório Java com Testes, JSF, Web Services e Design
Patterns e distribuído gratuitamente exclusivamente pelo site da Caelum. Todos os direitos são reservados à
Caelum. A distribuição, cópia, revenda e utilização para ministrar treinamentos são absolutamente vedadas.
Para uso comercial deste material, por favor, consulte a Caelum previamente.
www.caelum.com.br
1
Sumário
1 Tornando-se um desenvolvedor pragmático 1
1.1 O que é realmente importante? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 A importância dos exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Tirando dúvidas e referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Para onde ir depois? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Omodelo da bolsa de valores, datas e objetos imutáveis 4
2.1 A bolsa de valores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Candlesticks: O Japão e o arroz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 O projeto Tail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 O projeto Argentum: modelando o sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5 Trabalhando com dinheiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.6 Palavra chave nal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.7 Imutabilidade de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.8 Trabalhando com datas: Date e Calendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.9 Exercícios: o modelo do Argentum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.10 Resumo diário das Negociações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.11 Exercícios: fábrica de Candlestick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.12 Exercícios opcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3 Testes Automatizados 31
3.1 Nosso código está funcionando corretamente? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Exercícios: testando nosso modelo sem frameworks . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3 Denindo melhor o sistema e descobrindo mais bugs . . . . . . . . . . . . . . . . . . . . . . . . 34
3.4 Testes de Unidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.5 JUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.6 Anotações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.7 JUnit4, convenções e anotação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.8 Exercícios: migrando os testes do main para JUnit . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.9 Vale a pena testar classes de modelo? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.10 Exercícios: novos testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.11 Para saber mais: Import Estático . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.12 Mais exercícios opcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.13 Discussão em aula: testes são importantes? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4 Trabalhando com XML 53
4.1 Os dados da bolsa de valores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.2 O formato XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3 Lendo XML com Java de maneira difícil, o SAX . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
i
4.4 XStream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.5 Exercícios: Lendo o XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.6 Discussão em aula: Onde usar XML e o abuso do mesmo . . . . . . . . . . . . . . . . . . . . . . 63
5 Test Driven Design - TDD 64
5.1 Separando as candles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.2 Vantagens do TDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.3 Exercícios: Identicando negociações do mesmo dia . . . . . . . . . . . . . . . . . . . . . . . . 66
5.4 Exercícios: Separando os candles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.5 Exercícios opcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6 Acessando umWeb Service 73
6.1 Integração entre sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.2 Consumindo dados de umWeb Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.3 Criando o cliente Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.4 Exercícios: Nosso cliente Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.5 Discussão em aula: Como testar o cliente do web service? . . . . . . . . . . . . . . . . . . . . . 78
7 Introdução ao JSF e Primefaces 79
7.1 Desenvolvimento desktop ou web? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
7.2 Características do JSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
7.3 Exercícios: Instalando o Tomcat e criando o projeto . . . . . . . . . . . . . . . . . . . . . . . . . 86
7.4 A primeira página com JSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
7.5 Interagindo com o modelo: Managed Beans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
7.6 Recebendo informações do usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7.7 Exercícios: Os primeiros componentes JSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
7.8 A lista de negociações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7.9 Formatação de Data com JSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
7.10 Exercícios: p:dataTable para listar as Negociações do Web Service . . . . . . . . . . . . . . . . . 103
7.11 Para saber mais: paginação e ordenação . . . . . . . . . . . .