FeaturesPluginsDocs & SupportCommunityPartners

Desenvolvimento de Rails controlado por teste

Contribuição de Tor Norbye e manutenção de Beth Stearns
Dezembro de 2007 [Número da versão: V6.0-1]

Este artigo descreve os recursos do NetBeans IDE que podem ajudá-lo a testar o código Ruby and Rails. Há várias opções de teste disponíveis que facilitam o teste de unidade da aplicação.

Este artigo requer um conhecimento básico de programação com as tecnologias Ruby.

Conteúdo

 O conteúdo desta página se aplica ao IDE NetBeans 6.0

Para concluir este artigo, você precisa do seguinte software.

Software ou recurso Versão necessária
NetBeans IDE com suporte a Ruby and Rails Versão 6.0

Suporte ao teste do Ruby do NetBeans IDE

O NetBeans IDE oferece suporte a algumas das estruturas de teste e recursos do Ruby. Nós mostraremos os recursos com suporte e daremos uma idéia de como usar esses recursos de teste. Demonstraremos também alguns recursos importantes do NetBeans que ajudam a controlar erros e mover entre o código-fonte e os casos de teste.

Antes de abordarmos os recursos de testes relacionados ao Ruby, vamos analisar brevemente o teste de unidade e seus conceitos básicos. Quando falamos sobre o teste de unidade, queremos dizer o teste que os desenvolvedores realizam para validar se unidades individuais do código-fonte de uma aplicação estão funcionando corretamente. Uma unidade é definida como a menor parte de uma aplicação que pode ser testada. Assim, na programação orientada a objeto, uma unidade é uma classe, e pode ser uma classe base, super classe, classe abstrata ou classe derivada (ou filha). Na programação de procedimento, por outro lado, uma unidade geralmente é um procedimento, uma função ou um programa individual. Tenha cuidado para não confundir unidades com módulos, já que os módulos são partes maiores de uma aplicação e geralmente são formados de unidades.

O teste de unidade geralmente implica em um conjunto de casos de teste independentes entre si. Um caso de teste pode usar objetos simulados para auxiliar nos testes, principalmente se o uso de um objeto real for difícil, demorado ou difícil de gerar. Um objeto simulado é usado para testar o comportamento de outro objeto já que ele imita o comportamento do objeto real de uma maneira controlada. Um bom exemplo de um objeto simulado é o boneco utilizado no lugar de uma pessoa real em testes de batidas de carro.

Infra-estruturas de teste, ou estruturas de teste automáticas, também são importantes no teste de unidade. Uma infra-estrutura de teste é uma coleção de código de software e dados de teste que executa a unidade de programa de acordo com condições variadas, monitorando, ao mesmo tempo, os resultados e o comportamento da unidade. Como ela pode ser usada repetidamente, a infra-estrutura de teste automatiza o teste de unidade.

Teste::Testes de unidade

O Ruby possui uma estrutura de teste incorporada, designada como Teste::Unidade. Como o NetBeans IDE oferece suporte diretamente à Teste::Unidade, você pode criar novos testes de unidade do menu Novo de um projeto. Na janela Projetos, clique com o botão direito do mouse no projeto Ruby e selecione Novo -> Teste de unidade Ruby.

Criar novo teste de unidade Ruby

A caixa de diálogo Novo teste de unidade Ruby solicita informações sobre o arquivo do teste de unidade, incluindo a classe na qual executar o teste, o nome do arquivo do teste, seu módulo, junto com a localização no diretório de destino no projeto. Quando você clicar em Terminar, o IDE cria o arquivo de teste de unidade de esqueleto ao qual você deve adicionar o código de teste específico. Ele coloca este arquivo na localização da pasta especificada no projeto.

Criar o arquivo de teste de unidade - Clique para ampliar

Clique para ampliar

Há várias maneiras para testar ou executar um teste de unidade. É mais provável que você vá usar as opções Executar arquivo ou Testar arquivo do menu de contexto da janela Editor (você também pode chamar a opção Executar -> Executar arquivo no arquivo na janela Projeto).

Testar arquivo versus Executar arquivo

A opção Testar arquivo (Ctrl+F6), disponível do menu de contexto Editor e do menu Executar, é a melhor maneira de executar um arquivo de teste. Você pode executar Testar arquivo de dentro do próprio arquivo ou da classe que deseja testar. A opção Executar arquivo, também disponível do menu de contexto Editor e do menu Executar, requer que você esteja no arquivo de teste da classe que está sendo testada. A vantagem da opção Testar arquivo é que, embora você possa estar no arquivo que deseja testar, não é necessário estar no arquivo de teste da classe.

Para ilustrar a vantagem do uso da opção Testar arquivo, suponha que você esteja trabalhando em um teste de unidade de um controlador Rails. Quando está no arquivo de teste do controlador, você executa a opção Testar arquivo e ela executa esse mesmo arquivo de teste como um teste. Entretanto, você poderia estar editando, com a mesma facilidade, a própria classe do controlador. Se você estiver no meio da edição da classe do controlador e desejar testá-la, basta executar a opção Testar arquivo, pressionando Ctrl+F6, e ela executa o arquivo de teste correspondente à classe que você está no momento. Se, em vez disso, você usar a opção Executar arquivo na classe do controlador, o IDE abre a URL do controlador no navegador. Assim, pense na opção Executar arquivo como a execução de uma parte da aplicação no navegador enquanto a opção Testar arquivo executa os testes correspondentes para essa parte da aplicação.

Há outra diferença importante entre as opções Testar arquivo e Executar arquivo. A opção Testar arquivo, quando aplicada a um arquivo de teste, executa o arquivo como um teste. A execução de um arquivo como teste sinaliza para o IDE tratar o código em execução como um teste e verificar se há falhas na saída. Atualmente, ao encontrar falhas, o IDE cria um aviso em vermelho no rodapé da janela Editor, similar à mensagem em vermelho no Teste automático.

As mesmas diferenças aplicam-se às opções Executar projeto e Testar projeto. A opção Testar projeto, que aparece como Teste no menu de contexto do projeto, executa todos os testes no projeto. (Atualmente, a execução de todos os testes de um projeto funciona somente em projetos Rails). A opção executar de um projeto, na verdade, executa o projeto em um navegador.

Testar o arquivo do teste de unidade

A janela de saída na parte inferior exibe a saída produzida pela execução dos testes de unidade. Como a saída do teste possui hyperlink, você pode navegar por ela usando a opção de menu Navegar -> Próximo erro.

Exemplo de Teste::Saída da unidade

A opção de ação Ir para teste, disponível a partir do menu de contexto da janela Editor, permite que você se mova rapidamente entre uma classe e seus casos de teste correspondentes. Clique com o botão direito do mouse em qualquer lugar do arquivo de origem na janela Editor e selecione Navegar -> Ir pra teste (Control+Shift+T no Windows e Command+Shift+T no MacIntosh). A ação Ir para teste reconhece as convenções de Teste::Unidade. Ela também reconhece as convenções de Rails, RSpec e ZenTest.

Ação Ir para teste

Clique para ampliar

Teste automático

O projeto Ruby também pode incluir uma opção Teste automático. O Teste automático executa testes de unidade automaticamente sempre que você modifica um arquivo. Em projetos Rails, e em muitos outros casos, o Teste automático pode determinar os testes de unidade que precisam ser executados. Caso ele não possa determiná-los, todos os testes de unidade são executados como padrão.

A opção Teste automático está disponível quando você instala a Gem Ruby ZenTest. Use a opção Gems Ruby do menu Ferramentas para instalar ZenTest ou qualquer outra Gem Ruby. Quando esta opção está selecionada, o IDE carrega as Gems Ruby instaladas e exibe todas as Gems novas e disponíveis. Clique na aba Instaladas para ver as Gems Ruby já instaladas.

Verificar Gems Ruby instaladas - Clique para ampliar

Clique para ampliar

Se ZenTest não estiver instalada, clique na aba Novas Gems, localize zentest na lista, selecione-a e clique em Instalar.

Instalar Gem Ruby ZenTest - Clique para ampliar

Clique para ampliar

Você deverá ver uma mensagem indicando que ZenTest e suas ferramentas e bibliotecas associadas estão instaladas.

Mensagem de instalação do ZenTest

Depois que ZenTest estiver instalada, você deverá ver uma opção Teste automático no menu de contexto do projeto. Na janela Projetos, clique com o botão direito do mouse no nó do projeto Ruby e selecione Teste automático para iniciar o Teste automático no seu projeto. Como observado, o Teste automático executa os testes de unidade apropriados ou todos os testes de unidade quando os arquivos são modificados.

Chamar teste automático

A saída do Teste automático aparece na janela de saída. Se ocorrerem falhas, o Teste automático coloca uma mensagem de resumo no rodapé da janela Editor. Embora o painel Teste automático na janela de saída possa estar oculto, você pode clicar na aba Teste automático e examinar os detalhes da saída para determinar a causa da falha. Você também pode clicar nos hyperlinks na saída do Teste automático para ir diretamente para os casos de teste que falharam.

Mensagem de resumo do teste automático e janela Saída - Clique para ampliar

Clique para ampliar

O atalho para a ação Ir para teste (Ctrl+Shift+T) também funciona no contexto Teste automático; ele o leva diretamente para o arquivo de teste correspondente.

Observação: o suporte ao Teste automático será aprimorado futuramente. Os aprimoramentos podem incluir a exibição das falhas do teste em uma lista de tarefas. O suporte de JRuby para Teste automático também será aprimorado. Se você tiver problemas ao executar o Teste automático corretamente no JRuby, alterne para o Ruby nativo por enquanto.

Testes Rspec

A Gem Ruby rspec é outra ferramenta para testes de unidade. Ela está incluída no NetBeans IDE como parte da distribuição JRuby, assim, se você usar o intérprete Ruby fornecido, a rspec já estará instalada. Quando a rspec está instalada, seus projetos incluem um diretório spec que contém arquivos de especificação.

Entretanto, caso você opte por usar o Ruby nativo, o que pode ser feito alternando-se os intérpretes na caixa de diálogo Opções, será necessário verificar se a rspec estiver instalada (consulte primeiro a figura na seção Teste automático). Se não estiver, clique em Ferramentas -> Gems Ruby e, em seguida, na aba Novas Gems para instalá-la. Se você desejar usar a rspec com Rails, talvez precise instalar outra Gem Ruby e, para isso, deverá verificar estas instruções.

Você pode usar a ação Ir para teste para abrir um destes arquivos de especificação. Use Testar arquivo ou Executar arquivo do menu de contexto Editor para executar o arquivo de especificação no controle rspec, o que significa que o teste segue as opções do arquivo de especificação encontradas no arquivo spec.opts no diretório spec. Observe que as mesmas considerações discutidas anteriormente se aplicam ao uso de Testar arquivo versus Executar arquivo neste contexto. É possível também executar o teste do IDE e fazer com que ele use um conjunto diferente de opções, como desativar os sinalizadores coloridos vermelho e verde. Crie um arquivo chamado spec.opts.netbeans com as opções diferentes e o coloque no mesmo diretório spec.

Embora ainda não estejam disponíveis, os modelos de arquivo spec serão disponibilizados em breve.

Resumo

Este artigo abordou os recursos do NetBeans IDE para testar aplicações Ruby. Ele abordou o recurso de teste de unidade básico, Teste automático, e rspec. Ele também explicou como instalar Gems Ruby no IDE e usar os recursos de atalho de teste do IDE.

Próximas etapas


>> Mais documentação do NetBeans Ruby

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by