• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Python - Jak napisać testy jednostkowe do tego kodu?

Object Storage Arubacloud
0 głosów
229 wizyt
pytanie zadane 4 czerwca 2023 w Python przez whiteman808 Obywatel (1,820 p.)

Witam

Mam taki kod i potrzebuję do niego napisać testy jednostkowe. Mam pytanie, co i jak powinienem testować? Mam utworzyć instancje zdefiniowanych klas i posprawdzać czy takie rzeczy jak liczba produktów, czy transakcja zaszła pomyślnie itd się zgadzają?

Będę wdzięczny za podpowiedzi

from users import User, Address
from products import Product
from typing import NamedTuple, Optional
from payments import PaymentMethod


class Order(NamedTuple):
    buyer: User
    products: list[Product]
    shipping_address: Address
    payment_method: PaymentMethod


class ShoppingCart:
    def __init__(self, owner: User, products: list[Product]):
        self.owner = owner
        self.products = products

    def add_product(self, product: Product, qty: int) -> None:
        if qty < 1:
            raise ValueError(f"expected qty to be a positive value, got {qty}")
        for _ in range(0, qty):
            self.products.append(product)

    def remove_product(self, product: Product) -> None:
        self.products.remove(product)

    def count_product(self, product: Product) -> int:
        return self.products.count(product)

    def __str__(self) -> str:
        return f"{self.owner}'s shopping cart"

    def __repr__(self) -> str:
        return f"{self.__class__.__name__}(owner={self.owner!r}, products={self.products!r})"


def make_order(shopping_cart: ShoppingCart,
               shipping_address: Optional[Address] = None,
               payment_method: Optional[PaymentMethod] = None) -> Order:
    customer = shopping_cart.owner
    if shipping_address is None:
        shipping_address = customer.shipping_address
    if payment_method is None:
        payment_method = customer.payment_method
    return Order(customer, shopping_cart.products, shipping_address, payment_method)

 

1
komentarz 4 czerwca 2023 przez Wiciorny Ekspert (270,170 p.)
Testujesz co robią metody...
czyli dla  waunków początkowych X -> wynik Y

Widzisz co robią metody więc testujesz to, czy faktycznie to robią.
https://www.google.com/search?q=unit+test+python&oq=unit+test+py&aqs=chrome.0.0i512j69i57j0i512j0i22i30l7.1863j0j7&sourceid=chrome&ie=UTF-8
komentarz 4 czerwca 2023 przez whiteman808 Obywatel (1,820 p.)
Dzięki za odp

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 151 wizyt
pytanie zadane 20 marca 2020 w C# przez dawid2002 Mądrala (5,190 p.)
0 głosów
2 odpowiedzi 3,118 wizyt
pytanie zadane 28 października 2018 w Python przez Eliro Stary wyjadacz (12,160 p.)
+1 głos
2 odpowiedzi 325 wizyt
pytanie zadane 7 listopada 2019 w Python przez Kamil Początkujący (430 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...