Trabalhar em unidades menores, através de testes, reduz a complexidade e permite o desenvolvimento de uma aplicação “de dentro para fora” pois, o desenvolvedor trabalha diretamente no modelo, além de favorecer o baixo acoplamento e a alta coesão dos componentes criados.
TDD na prática
Lidar com a complexidade de sistemas é um constante desafio para os desenvolvedores. O TDD oferece um mecanismo de auxílio no combate à complexidade. Através de testes de pequenas unidades da aplicação o desenvolvedor pode focar seus esforços em funcionalidades específicas, isolando-se do resto. A técnica também permite trabalhar diretamente no modelo, sem a necessidade de se pensar nas camadas mais externas da aplicação.
Este artigo mostra o desenvolvimento de uma aplicação em Java, com os frameworks Struts 1.3 e JPA (fora de um container Java EE), utilizando a técnica de Desenvolvimento Guiado por Testes (TDD).
A máxima da Engenharia de Software para que equipes possam lidar com sistemas de grande porte e alta complexidade é: “Dividir para conquistar”. Mas como o desenvolvedor pode aplicar na prática este mandamento? A resposta é o TDD.
Criar um design de projeto que reflita o domínio do negócio do cliente ajuda a integrar os envolvidos, pois facilita a comunicação entre as partes. Os patterns oferecidos por metodologias como o DDD (Domain-Driven Design) auxiliam na prática correta dos fundamentos da orientação a objetos, de uma maneira que a equipe consiga extrair o máximo das vantagens oferecidas pelo paradigma. Além disso, permite a criação de um modelo que concentre toda a complexidade referente às regras de negócio.
O Test-Driven Development (TDD), aparece como uma ferramenta de auxílio ao desenvolvedor, só que de forma mais específica, isto é, em nível de implementação de funcionalidades. Pois no fim das contas, quem combate a complexidade na linha de frente, é o profissional que escreve código.
A técnica permite que desenvolvedores, através de testes e fatorações, foquem seus esforços em pequenas partes do sistema, isolando-se do todo. Por analogia, quanto maior o problema, menor deve ser o terreno que cada teste deve abranger.
Este artigo tem o objetivo de apresentar a criação de um sistema em Java, utilizando Struts 1.3, Tomcat 6 e a API de persistência (JPA – com Hibernate 3), através da técnica de Test-Driven Development de forma prática. Para a criação dos testes, utilizaremos o framework JUnit 4.
Sendo assim, precisamos de um cenário para basear o estudo da técnica e das ferramentas que serão utilizadas. É o que veremos a seguir.
Sistema de imóveis
Uma imobiliária quer informatizar as atividades relacionadas aos imóveis de seus clientes. Com este objetivo, contratou uma empresa de desenvolvimento de software para criar um sistema de gerenciamento de imóveis.
O sistema deve permitir operações sobre os clientes da imobiliária e seus respectivos imóveis, situados nos diversos estados brasileiros. Alguns dados pertinentes aos clientes são: nome, CPF e estado de origem. Os imóveis devem ser identificados inequivocamente através de um código alfanumérico e devem conter informações sobre o valor e o estado em que estão localizados.
Após inúmeras conversas entre representantes da empresa e equipe de desenvolvimento, os projetistas modelaram o sistema como mostra a Figura 1.
Configurando o ambiente
Antes de iniciarmos o desenvolvimento do sistema e os trabalhos com testes, precisamos configurar o ambiente proposto para o objetivo do nosso estudo. Além de prepará-lo para suportar testes através do framework JUnit.
Utilizaremos a IDE Eclipse Helios neste artigo. A partir dela, faremos as configurações do projeto. Esta versão da ferramenta dá suporte à criação de projetos integrados com o JUnit e com a Java Persistence API (JPA).
A primeira coisa a ser feita é criar um novo Dynamic Web Project. Para isso, basta ir em File > New > Other... e selecionar a opção desejada nos wizards disponíveis (dentro da pasta Web), como mostra a Figura 2.
Clique em Next. A tela apresentada (veja a Figura 3) permite a configuração do projeto que estamos criando. Para este artigo, utilizaremos o Apache Tomcat 6 como Target runtime. O quadro “Tomcat no Eclipse” mostra como integrar o deploy de aplicações feitas no Eclipse com o Tomcat local de sua máquina.
Para podermos trabalhar de forma eficiente, com aplicações web desenvolvidas no Eclipse e que utilizam o Tomcat, precisamos integrar as duas ferramentas para permitir o deploy direto pela IDE.
Fazer deploy significa publicar os componentes prontos, de sua aplicação, em um servidor. Desta forma, vamos configurar o Eclipse para automatizar este processo. Para isso, é necessário ter o Tomcat instalado em sua máquina.
Assumindo que você tem o Tomcat instalado, vamos começar selecionando a aba Servers no Eclipse, como mostra a Figura Q1.
Agora clique com o botão direito na área branca e selecione a opção New > Server. A tela apresentada permite a configuração do servidor. A Figura Q2 mostra as configurações necessárias.
Ao clicar em Next, você poderá escolher que projetos terão seus deploys integrados ao Tomcat. Clique em Finish. O servidor está criado e deve aparecer na aba Servers.
O último passo é definir em que pasta os projetos serão publicados. Para isso, clique duas vezes no nome do servidor. A tela apresentada mostra diversas opções de configurações. Para o nosso caso, vamos alterar as configurações de acordo com a Figura Q3.
O Server path deve apontar para a pasta de instalação do Tomcat em sua máquina, enquanto o Deploy path deve apontar para a pasta webapps, também do Tomcat.
Após seguir estes passos, seu servidor estará pronto para uso. Você pode controlá-lo através da aba Servers e sempre que inicializá-lo, todas as aplicações associadas a ele, serão publicadas.
Ainda com base na Figura 3, adicionaremos o suporte à JPA. Para isso, clique no botão Modify..., que fica dentro da área Configuration. Na janela apresentada, como mostra a Figura 4, selecione a opção JPA e clique em OK. Desta forma, o projeto criado estará pronto para trabalhar com a API de persistência.
Obedecidos estes passos, podemos clicar em Finish. Temos então um projeto criado, integrado ao Tomcat e com suporte a JPA. Precisamos ainda, adicionar o framework de testes JUnit. Para isso, basta clicar com o botão direito no nome projeto, que se encontra no Package Explorer, e selecionar a opção Build Path ...
Confira outros conteúdos:
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.