{"meta":{"title":"Gerando testes de unidade","intro":"Copilot Chat pode ajudar na geração de 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-cookbook","title":"Livro de receitas do GitHub Copilot"},{"href":"/pt/copilot/tutorials/copilot-cookbook/testing-code","title":"Como testar o código"},{"href":"/pt/copilot/tutorials/copilot-cookbook/testing-code/generate-unit-tests","title":"Gerar testes de unidade"}],"documentType":"article"},"body":"# Gerando testes de unidade\n\nCopilot Chat pode ajudar na geração de 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.               Copilot Chat 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 pedir para Copilot Chat gerar 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## Prompt 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## Resposta de exemplo\n\n> \\[!NOTE] A resposta a seguir é um exemplo. Respostas do Copilot Chat são não determinísticas, portanto, você pode obter uma resposta diferente da mostrada aqui.\n\nSe esta for sua primeira vez solicitando Copilot Chat a geração de testes de unidade, ele poderá perguntar se você deseja configurar testes de unidade para seu projeto. Para esse exemplo, estamos supondo que você recuse essa oferta.\n\nCopilot fornecerá uma estratégia para 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/concepts/prompting/prompt-engineering)\n* [Práticas recomendadas para usar GitHub Copilot](/pt/copilot/get-started/best-practices)"}