Objektově orientované programování (OOP) je přístup k vývoji softwaru, při kterém je kód organizován ve formě objektů
Zapouzdření
Zapouzdření je spojení dat a metod, které s těmito daty pracují, uvnitř jedné třídy, a také omezení přímého přístupu k vnitřnímu stavu objektu.
Jednoduše řečeno: objekt spravuje svá vlastní data a vnější kód s ním komunikuje prostřednictvím metod.
Abstrakce
Abstrakce je zvýraznění pouze důležitých vlastností objektu a skrytí detailů jeho implementace.
Jednoduše řečeno: uživateli záleží na tom, co objekt dělá, ne jak přesně to dělá.
Polymorfismus
Polymorfismus je schopnost objektů s různou implementací používat stejnou rozhraní. V testování to pomáhá psát univerzální kód, který pracuje s různými typy dat nebo tříd.
Příklad v Pythonu:
class Animal:
def make_sound(self):
pass
class Dog(Animal):
def make_sound(self):
return "Haf!"
class Cat(Animal):
def make_sound(self):
return "Mňau!"
def animal_sound(animal: Animal):
print(animal.make_sound())
dog = Dog()
cat = Cat()
animal_sound(dog) # Haf!
animal_sound(cat) # Mňau!
V automatizovaných testech je polymorfismus užitečný pro:
- Vytváření univerzálních metod kontroly
- Implementaci různých testovacích strategií přes jedno rozhraní
- Podporu různých verzí API/UI bez změny testů
Dědičnost
Dědičnost je mechanismus, který umožňuje nové třídě automaticky používat existující třídu, děděním jejích vlastností a metod.
Jednoduše řečeno: nová třída znovu využívá kód rodičovské třídy a v případě potřeby jej rozšiřuje.