Laboratorium 7: Atrapy.
W testach jednostkowych często spotykamy się z sytuacją, gdzie metoda, którą testujemy, zależy od innej klasy lub modułu. Nie zawsze jednak chcemy (lub możemy) testować całą aplikację naraz. W takich przypadkach używamy atrap (stub, mock), czyli obiektów zastępczych symulujących rzeczywiste zachowanie.
Atrapy pozwalają nam:
W Pythonie do tworzenia atrap wykorzystujemy moduł unittest.mock, a w szczególności Mock().
Obiekt Mock() jest dynamiczną atrapą, która udaje prawdziwy obiekt i pozwala kontrolować jego zwracane wartości oraz sprawdzać, czy był wywoływany.
Możemy np.:
Mamy klasę Counter, która używa klasy Operation. Nie mamy implementacji count(), ale chcemy przetestować Counter. Zastosujemy Mock() jako atrapę zamiast faktycznej klasy Operation.
Następnie zaimplementujemy testy, które nie wymagają rzeczywistej implementacji metody count().
Dobrze przeanalizuj kod i zastanów się.
Tworzysz system zarządzania książkami w bibliotece. Aktualnie nie ma jeszcze implementacji systemu, ale został zdefiniowany interfejs oraz wstępna implementacja operacji.
Wiem, że nic nie wiem
~Sokrates