Aprenda a usar essa o GitHub Copilot para criar documentação técnica e testes unitários, com exemplos práticos de projetos em .NET e Python.
Em um ambiente de desenvolvimento ágil, a eficiência é crucial. Durante a sessão "Crie Testes Unitários e Documentação com GitHub Copilot" do GitHub Copilot Bootcamp Brasil (assista as gravações), o especialista Rogério Rodrigues demonstrou, em tempo real, como a IA do GitHub Copilot atua como um "copiloto" para simplificar processos complexos.
Este artigo sintetiza as principais técnicas apresentadas, focando nas funcionalidades que automatizam a geração de documentação, criam testes unitários adaptáveis e produzem diagramas técnicos sem esforço manual.
O que você vai aprender nessa sessão:
Geração de Documentação Contextualizada
Rogério iniciou com um projeto .NET que consumia dados de uma API de previsão do tempo. Selecionando o método WeatherApiClient, ele acionou o comando "Generate Docs" diretamente no Visual Studio Code. Em segundos, o Copilot gerou:
- Uma docstring detalhada com parâmetros (city: str) e tipo de retorno (dict)
- Explicações claras sobre o fluxo de consumo da API meteorológica
- Sugestões de tratamento de erros específicos para APIs REST
"O segredo está em como o Copilot entende o contexto", explicou Rogério. "Ele não apenas descreve o que o código faz, mas antecipa necessidades de documentação técnica que desenvolvedores júnior poderiam esquecer."
Um ponto interessante foi a sugestão do GitHub Copilot para gestão de frota:
class VehicleRental:
"""Sistema de gestão de aluguéis com validação de pagamentos"""
Ao usar o prompt "gere um README.md com instruções de execução", o Copilot estruturou:
- Lista de dependências com versões específicas
- Comandos de instalação otimizados para virtualenv
- Exemplos de uso da classe PaymentValidator com cenários reais
Testes Unitários
A magia aconteceu quando Rogério alternou entre frameworks de teste sem reescrever código:
Cenário .NET/MSTest:
- Selecionou o método PriceValidator
- Prompt: "Crie testes com dados mock para valores negativos e acima de R$1000"
- Copilot gerou 5 casos de teste com [DataRow] e Assert.ThrowsException
Resultado: Ao pedir "Reescreva usando xUnit", o Copilot:
- Substituiu [TestMethod] por [Fact]
- Reformulou assertions usando Should().Throw<>() (FluentAssertions)
- Adicionou comentários sobre paralelismo de testes
Cenário Python/unittest:
Para a função validate_price, o Copilot propôs:
def test_negative_price_raises_value_error(self):
with self.assertRaisesRegex(ValueError, "maior que zero"):
validate_price(-150)
"Notem como ele incluiu validação de mensagem de erro – detalhe que 80% dos iniciantes esquecem", destacou Rogério.
Diagramas
Com a extensão Mermaid, Rogério transformou comandos em artefatos técnicos:
Prompt no VS Code:
@mermaid Crie diagrama de classes para RentalService, Vehicle, Payment
Resultado em 15s:
classDiagram
Vehicle <|-- Car
Vehicle : +String license_plate
Vehicle : +register_rental()
Payment : +process_credit_card()
RentalService : +validate_availability()
"Esses diagramas não são estáticos", explicou. "Atualizam-se automaticamente quando o código muda – crucial para microservices com dezenas de componentes."
Próximos passos
Assista as gravações do GitHub Copilot Bootcamp disponíveis em português, comece a utilizar o GitHub Copilot gratuito e explore os módulos do Microsoft Learn: