Ich versuche, einen Dienst in einem Funktionstest zu verspotten, die von einem anderen Dienst verwendet wird:wie ein Dienst zu verspotten, um es zu injizieren richtig
$client = static::createClient();
$stub = $this->createMock(MailService::class);
$stub->method('sendMailToUser')->willReturn(9);
$client->getContainer()->set('belka.auth_bundle.mail_service', $stub);
// the *real* test should start here
wenn ich versuche, innerhalb eines die
Befehl zu setzen das Original sendMailToUser
, was ich bekomme, ist der Code zu stoppen, obwohl ich versucht, es zu verspotten, indem Sie 9. Was ist los damit? Die Service-I-Tests sind hat die folgende Erklärung, dann nahm ich an dem injizierte Dienst wurde schreibt die oben:
belka.auth_bundle.user_handler:
class: Belka\AuthBundle\Handler\UserHandler
arguments:
- '@belka.auth_bundle.user_repository'
- '@belka.auth_bundle.mail_service'
calls:
- [setRequest, ["@request_stack"]]
- [setSettings, ["@belka.auth_bundle.setting_handler"]]
- [setBodyJsonHandler, ["@belka.container_support_bundle.body_json_handler"]]
- [setQuantityHandler, ["@belka.container_support_bundle.quantityhandler"]]