Unit тесты нужны для тестирования кода-бизнес логики. Они выполняются быстро, не лезут в базу и в целом гарантируют вам что бизнес логика соответствует вашим требованиям, что методы класса возвращают то, что от них ждут.
class Contragent{
public function findById(int $id): Contragent
// каким то образом извлекаем сырые данные
$row = ...
//что то предустановлено прямо в репо
$values = [
1 => "ИП",
2 => "Юр. лицо"
];
$status = new Type($row["type"], $values[$contragent->typeId]);
$type = new Status($row["status"]);
$contragent = new Contragent($status,$type);
//тут контрагент может заполнится через сеттеры другим данными, обязательные идут через конструктор
return $contragent;
}
$contragent = $repository->findById($id);
echo $contragent->getType()->getId();
echo $contragent->getStatus()->getId();