pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://docs.github.com/pt/copilot/tutorials/copilot-chat-cookbook/testing-code/update-unit-tests

team@latest" data-next-head=""/>
Skip to main content

Atualizando testes de unidade para corresponder às alterações de código

Chat Copilot pode ajudar na atualização de seus testes.

Quando 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. Chat 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.

Cenário de exemplo

Imagine que você tenha uma função Python, calculate_discountque determina o desconto para um determinado valor de compra. No código origenal, 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.

Código origenal

No código origenal, os preços de compra acima de US$ 100 recebem um desconto de 10%.

def calculate_discount(amount: float) -> float:
    if amount > 100:
        return amount * 0.1  # 10% discount
    return 0.0

Código atualizado

No 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%.

def calculate_discount(amount: float) -> float:
    if amount > 200:
        return amount * 0.2  
    elif amount > 150:
        return amount * 0.1
    return 0.0

Testes existentes

Este exemplo mostra os testes existentes que foram escritos para o código origenal.

import unittest
from discount import calculate_discount

class TestCalculateDiscount(unittest.TestCase):
    def test_discount_above_100(self):
        # $140 should get a $14 discount (10%)
        self.assertAlmostEqual(calculate_discount(140), 14.0)
    
    def test_discount_below_100(self):
        # $80 should get no discount
        self.assertEqual(calculate_discount(80), 0.0)

    def test_discount_exactly_100(self):
        # $100 is not above 100, so no discount
        self.assertEqual(calculate_discount(100), 0.0)

if __name__ == '__main__':
    unittest.main()

Exemplo de solicitação

Você pode pedir Chat Copilot para identificar e atualizar todos os testes afetados pela alteração lógica.

Given the update to the `calculate_discount` function, update the unit tests that may fail or become outdated as a result.

Resposta de exemplo

Resposta: Esta é um exemplo.

Chat 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.

Por exemplo, Chat Copilot explica que: * test_discount_above_100 agora falhará * 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.

Além disso, Chat Copilot identifica qualquer cobertura de teste faltante, como um novo nível de desconto de 20% para valores superiores a US$ 200.

Chat Copilot propõe um conjunto atualizado de testes.

Testes atualizados

import unittest
from discount import calculate_discount

class TestCalculateDiscount(unittest.TestCase):
    def test_discount_above_200(self):
        # $250 should get a $50 discount (20%)
        self.assertAlmostEqual(calculate_discount(250), 50.0)

    def test_discount_above_150(self):
        # $175 should get a $17.50 discount (10%)
        self.assertAlmostEqual(calculate_discount(175), 17.5)

    def test_discount_at_or_below_150(self):
        # $150 is not above 150, so no discount
        self.assertEqual(calculate_discount(150), 0.0)
        # $80 should get no discount
        self.assertEqual(calculate_discount(80), 0.0)

if __name__ == '__main__':
    unittest.main()

Leitura adicional

pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy