DANTES é uma ferramenta web projetada para detectar e refatorar test smells em códigos de teste de unidade Java usando JUnit. Atualmente, o DANTES oferece cobertura de detecção e refatoração para 11 tipos diferentes de test smells e é capaz de refatorar uma classe de teste inteira com um único clique de botão.
Para se utilizar a DANTES, é necessário ter as seguintes dependências instaladas:
- Java: disponível em www.java.com
- NodeJS: disponível em www.nodejs.org
O processo de instalação consiste nos seguintes passos:
- Baixe ou clone o repositório
- Navegue até a pasta do projeto
- Abra o terminal na pasta do projeto
- Execute o comando
npm install
no terminal - Execute o comando
node app.js
no terminal - Abra um navegador no endereço http://localhost:3000/
git clone https://github.com/arieslab/DANTES.git
cd DANTES
npm install
node app.js
Ao se abrir a página da ferramenta, esta deve ser sua estrutura. Marcado em círculos vermelhos numerados de um a nove são alguns pontos importantes da ferramenta:
- Esta é a caixa de texto principal da ferramenta, aqui o usuário pode escrever ou colar o código de teste que deseja submeter para análise da ferramenta;
- Neste botão o usuário pode mudar o tema entre claro e escuro;
- O botão "Detect" deve ser clicado para que a ferramenta faça a detecção de test smells no código fornecido
- O usuário pode clicar no botão de "Upload a file" para escolher um arquivo e copiar o conteúdo desse arquivo diretamente para a caixa de texto
- Neste menu dropdown o usuáro pode selecionar diferentes formas de ordenar a exibição dos test smells encontrados:
- Selecione "Order by Position in Code" para ordenar de acordo com a ordem de aparição dos smells no código;
- Selecione "Order by Smell Type" para ordenar pela ordem alfabética dos nomes dos test smells;
- Após a detecção dos test smells, esta caixa será atualizada com a listagem de todos os test smells encontrados;
- Nesta caixa será exibido o código enviado para análise com as linhas que contém test smells marcadas em vermelho;
- Após feita alguma refatoração, o código refatorado será exibido nesta caixa, com as linhas refatoradas marcadas em verde;
- O usuário pode clicar neste botão para copiar para a área de transferência todo o conteúdo do código exibido.
Após o envio do código e realizada a detecção, a caixa marcada com número 6 será atualizada desta forma:
- Acima da caixa esta linha é gerada mostrando se houve algum erro na detecção e, caso contrário, exibindo a quantidade de test smells encontrada no código;
- Dentro da caixa, cada linha corresponde a uma ocorrência de test smell encontrado no código. Na linha é detalhado o tipo do smell, o método onde foi encontrado e a linha;
- Para cada smell é colocado um botão verde referente à refatoração a ser executada para este smell, para executá-la basta pressionar o botão e a ferramenta irá executar a refatoração nomeada no botão;
- Ao clicar este botão todos os test smells encontrados no código será refatorado de uma só vez.