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();
try{
$file = $fileService->getFileByHash($hash);
}
catch(FileNotFoundException $ex){
return new Response("404 not found",404);
}
//дальше что то оделаем например отдаем контент файла
try{
$order = $orderService->createOrderAndNotify($orderRequest);
return new JsonResponse([
"orderId"=>order ->getId()
], 200
);
}
catch(OrderValidationException $ex){
return new JsonResponse([
"errors"=>$ex->getErrors()
], 400
);
}
catch(OrderException $ex){
$logger->error($ex->getMessage());
return new Response("application error", 500)
}