{"meta":{"title":"Gerando testes de unidade","intro":"O Bate-papo do Copilot pode ajudar a gerar testes de unidade para uma função.","product":"GitHub Copilot","breadcrumbs":[{"href":"/pt/copilot","title":"GitHub Copilot"},{"href":"/pt/copilot/tutorials","title":"Tutoriais"},{"href":"/pt/copilot/tutorials/copilot-chat-cookbook","title":"Livro de Receitas do GitHub Copilot Chat"},{"href":"/pt/copilot/tutorials/copilot-chat-cookbook/testing-code","title":"Como testar o código"},{"href":"/pt/copilot/tutorials/copilot-chat-cookbook/testing-code/generate-unit-tests","title":"Gerar testes de unidade"}],"documentType":"article"},"body":"# Gerando testes de unidade\n\nO Bate-papo do Copilot pode ajudar a gerar testes de unidade para uma função.\n\nUm bom conjunto de testes de unidade é fundamental para o sucesso de qualquer project. No entanto, escrever esses testes pode ser algo demorado e, muitas vezes, negligenciado. O Bate-papo do Copilot pode ajudar a gerar esses testes para você.\n\n## Cenário de exemplo\n\nConsidere que você tenha uma função Python que valide os dados antes de atualizar o banco de dados. Você precisa criar testes de unidade a fim de garantir que a validação seja executada da maneira esperada. Você pode solicitar que Bate-papo do Copilot gere esses testes para você.\n\n```python id=validate-price\ndef validate_price(price: float):\n  if price <= 0:\n    raise ValueError(\"Price must be greater than 0\")\n  if price > 1000:\n    raise ValueError(\"Price must be less than or equal to 1000\")\n```\n\n## Solicitação de exemplo\n\n```copilot copy prompt ref=validate-price\n/tests Generate unit tests for this function. Validate both success and failure, and include edge cases.\n```\n\n## Exemplo de resposta\n\n> \\[!NOTE] A resposta a seguir é um exemplo. Respostas do Bate-papo do Copilot são não determinísticas, portanto, você pode obter uma resposta diferente da mostrada aqui.\n\nSe essa for sua primeira vez solicitando que Bate-papo do Copilot crie testes de unidade, ele poderá perguntar se você deseja configurar os testes de unidade para o projeto. Para esse exemplo, estamos supondo que você recuse essa oferta.\n\nO Copilot fornecerá uma estratégia a fim de gerar os testes e, em seguida, fornecerá os próprios testes.\n\n```python\nimport unittest\nfrom generate_unit_tests import validate_price\n\nclass TestValidateProduct(unittest.TestCase):\n  def test_price_zero(self):\n    with self.assertRaises(ValueError) as context:\n      validate_price(0)\n    self.assertEqual(str(context.exception), \"Price must be greater than 0\")\n\n  def test_price_negative(self):\n    with self.assertRaises(ValueError) as context:\n      validate_price(-10)\n    self.assertEqual(str(context.exception), \"Price must be greater than 0\")\n\n  def test_price_above_limit(self):\n    with self.assertRaises(ValueError) as context:\n      validate_price(1500)\n    self.assertEqual(str(context.exception), \"Price must be less than or equal to 1000\")\n\n  def test_price_edge_case_zero(self):\n    with self.assertRaises(ValueError) as context:\n      validate_price(0)\n    self.assertEqual(str(context.exception), \"Price must be greater than 0\")\n\n  def test_price_edge_case_max(self):\n    try:\n      validate_price(1000)\n    except ValueError:\n      self.fail(\"validate_price() raised ValueError unexpectedly!\")\n\nif __name__ == '__main__':\n  unittest.main()\n```\n\n## Leitura adicional\n\n* [Engenharia de prompts para o GitHub Copilot Chat](/pt/copilot/using-github-copilot/prompt-engineering-for-github-copilot)\n* [Práticas recomendadas para usar GitHub Copilot](/pt/copilot/using-github-copilot/best-practices-for-using-github-copilot)"}