Nahradenie sluzby definovane v neone v kode
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- matopeto
- Člen | 395
Zdravim
v testoch by som chcel nahratit sluzbu, za mock.
v configu mam definovane
services:
imagesModel: FileImagesStorage
FileImageStorage
implementuje rozhranie
IImagesStorage
Teraz by som to chcel v kode nahradit za ImageStorageMock
,
ktory tiez implementuje IImageStorage
Pouzil som toto:
<?php
$container->removeService("imagesModel");
$container->addService("imagesModel", new ImageStorageMock());
?>
Bohuzial nette pise:
Nette\InvalidArgumentException: Service 'imagesModel' must be instance of FileImagesStorage, ImageStorageMock given
.
Otazka je ako nahradit sluzbu za inu, ked implementuju rovnaky interface?
- David Matějka
- Moderator | 6445
budes asi muset v configu pouzit zapis:
services:
imageModel:
class: IImageStorage
create: FileImageStorage