{"meta":{"title":"Atualizando testes de unidade para corresponder às alterações de código","intro":"Bate-papo do Copilot pode ajudar na atualização de seus testes.","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/update-unit-tests","title":"Atualizar testes de unidade"}],"documentType":"article"},"body":"# Atualizando testes de unidade para corresponder às alterações de código\n\nBate-papo do Copilot pode ajudar na atualização de seus testes.\n\nQuando você faz alterações em seu código, é importante atualizar todos os testes para verificar o novo comportamento e capturar os bugs que o novo código introduziu. Bate-papo do Copilot pode ajudá-lo a atualizar rapidamente os testes para refletir as alterações no código, garantindo que seu conjunto de testes permaneça alinhado à sua implementação.\n\n## Cenário de exemplo\n\nImagine que você tenha uma função Python, `calculate_discount`que determina o desconto para um determinado valor de compra. No código original, você obtém um desconto de 10% para valores acima de US$ 100. Você está fazendo alterações na lógica da função, para que apenas os preços acima de US $ 150 obtenham um desconto de 10%, e agora há um desconto de 20% para valores acima de US $ 200.\n\n### Código original\n\nNo código original, os preços de compra acima de US$ 100 recebem um desconto de 10%.\n\n```python\ndef calculate_discount(amount: float) -> float:\n    if amount > 100:\n        return amount * 0.1  # 10% discount\n    return 0.0\n```\n\n### Código atualizado\n\nNo código alterado, apenas valores acima de US$150 obtêm um desconto de 10%, e valores acima de US$200 agora obtêm um desconto de 20%.\n\n```python id=calculate_discount\ndef calculate_discount(amount: float) -> float:\n    if amount > 200:\n        return amount * 0.2  \n    elif amount > 150:\n        return amount * 0.1\n    return 0.0\n```\n\n### Testes existentes\n\nEste exemplo mostra os testes existentes que foram escritos para o código original.\n\n```python\nimport unittest\nfrom discount import calculate_discount\n\nclass TestCalculateDiscount(unittest.TestCase):\n    def test_discount_above_100(self):\n        # $140 should get a $14 discount (10%)\n        self.assertAlmostEqual(calculate_discount(140), 14.0)\n    \n    def test_discount_below_100(self):\n        # $80 should get no discount\n        self.assertEqual(calculate_discount(80), 0.0)\n\n    def test_discount_exactly_100(self):\n        # $100 is not above 100, so no discount\n        self.assertEqual(calculate_discount(100), 0.0)\n\nif __name__ == '__main__':\n    unittest.main()\n```\n\n## Exemplo de solicitação\n\nVocê pode pedir Bate-papo do Copilot para identificar e atualizar todos os testes afetados pela alteração lógica.\n\n```copilot\nGiven the update to the `calculate_discount` function, update the unit tests that may fail or become outdated as a result.\n```\n\n## Resposta de exemplo\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\nBate-papo do Copilot analisa seu código e testes existentes e identifica quais testes falharão ou tornaram-se enganosos após a alteração de código.\n\nPor exemplo, Bate-papo do Copilot explica que:\n\n* `test_discount_above_100` agora **falhará**\n* `test_discount_below_100` e `test_discount_exactly_100` serão aprovados, mas agora são **enganosos**, já que o limite para os 10% de desconto agora é de US$ 150, e não US$ 100.\n\nAlém disso, Bate-papo do Copilot identifica qualquer **cobertura de teste faltante**, como um novo nível de desconto de 20% para valores superiores a US$ 200.\n\nBate-papo do Copilot propõe um conjunto atualizado de testes.\n\n### Testes atualizados\n\n```python\nimport unittest\nfrom discount import calculate_discount\n\nclass TestCalculateDiscount(unittest.TestCase):\n    def test_discount_above_200(self):\n        # $250 should get a $50 discount (20%)\n        self.assertAlmostEqual(calculate_discount(250), 50.0)\n\n    def test_discount_above_150(self):\n        # $175 should get a $17.50 discount (10%)\n        self.assertAlmostEqual(calculate_discount(175), 17.5)\n\n    def test_discount_at_or_below_150(self):\n        # $150 is not above 150, so no discount\n        self.assertEqual(calculate_discount(150), 0.0)\n        # $80 should get no discount\n        self.assertEqual(calculate_discount(80), 0.0)\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)"}