Bonjour,

Je fais référence à cette vidéo : https://grafikart.fr/tutoriels/tests-symfony-entity-1215
Je suis en train de mettre en place mes tests unitaires sur les assertions au niveau de mes entités.

Je travaille avec Symfony 5.4
Je récupère le "validator" de cette manière

class TestMyEntity extends KernelTestCase
{
    /**
     * @var ValidatorInterface
     */
    protected ValidatorInterface $validator;

    public function setUp(): void
    {
        parent::setUp();
        $kernel = self::bootKernel();
        $this->validator = $kernel->getContainer()->get('validator');
    }

Tout fonctionne mais j'ai une tout de même une notice qui me dit

Since symfony/framework-bundle 5.2: Accessing the "validator" service directly from the container is deprecated, use dependency injection instead.

je comprends bien que je ne peux plus récupérer le validateur de cette manière, mais je ne vois pas comment l'injecter. Je n'ai pas de constructeur et quand je tente d'en ajouter un, y'a tout qui pête.

Si l'un d'entre vous à la solution je suis preneur.
Merci à vous.

2 réponses


David-CCO
Réponse acceptée

Salut,

Essaye avec : $this->validator = static::getContainer()->get('validator');

J'ai Symfony 6 et je n'ai pas de warning.

jeanMat
Auteur

Ha oui, c'était tout simplement ça.
Merci