Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur Test : "Malformed UTF-8 characters"

    5 février 2024 à 20:34:43

    Salut tout le monde,

    J'essaie d'implémenter un test dans mon projet avec PHPUnit. Le back est fait avec Symfony et le front en HTML/CSS/JS.

    Je souhaite tester une route afin de vérifier qu'elle me retourne bien les données d'un produit.

    Ca fonctionne bien quand mon application tourne, je récupère les informations du produit en format Json et les affiche sur la page produit.
    Mais le test me retourne une erreur :

    There was 1 error:
    
    1) App\Tests\Controller\ProductControllerTest::testGetProduct
    InvalidArgumentException: Malformed UTF-8 characters, possibly incorrectly encoded
    
    C:\wamp64\www\__projects__\topgloves\backend\vendor\symfony\http-foundation\JsonResponse.php:142
    C:\wamp64\www\__projects__\topgloves\backend\vendor\symfony\http-foundation\JsonResponse.php:49
    C:\wamp64\www\__projects__\topgloves\backend\src\EventSubscriber\ExceptionSubscriber.php:31
    C:\wamp64\www\__projects__\topgloves\backend\vendor\symfony\event-dispatcher\Debug\WrappedListener.php:116
    C:\wamp64\www\__projects__\topgloves\backend\vendor\symfony\event-dispatcher\EventDispatcher.php:220
    C:\wamp64\www\__projects__\topgloves\backend\vendor\symfony\event-dispatcher\EventDispatcher.php:56
    C:\wamp64\www\__projects__\topgloves\backend\vendor\symfony\event-dispatcher\Debug\TraceableEventDispatcher.php:139
    C:\wamp64\www\__projects__\topgloves\backend\vendor\symfony\http-kernel\HttpKernel.php:239
    C:\wamp64\www\__projects__\topgloves\backend\vendor\symfony\http-kernel\HttpKernel.php:91
    C:\wamp64\www\__projects__\topgloves\backend\vendor\symfony\http-kernel\Kernel.php:197
    C:\wamp64\www\__projects__\topgloves\backend\vendor\symfony\http-kernel\HttpKernelBrowser.php:65
    C:\wamp64\www\__projects__\topgloves\backend\vendor\symfony\framework-bundle\KernelBrowser.php:171
    C:\wamp64\www\__projects__\topgloves\backend\vendor\symfony\browser-kit\AbstractBrowser.php:403
    C:\wamp64\www\__projects__\topgloves\backend\tests\Controller\ProductControllerTest.php:12
    
    ERRORS!
    Tests: 1, Assertions: 0, Errors: 1.

    Voici mon fichier test :

    <?php
    
    namespace App\Tests\Controller;
    
    use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
    
    class ProductControllerTest extends WebTestCase
    {
        public function testGetProduct(): void
        {
            $client = static::createClient();
            $client->request('GET', '/api/products/80');
            $this->assertResponseIsSuccessful();
        }
    }

    Voici la méthode du controller pour récupérer un produit :

    #[Route('api/products/{id}', name: 'get_product', methods: ['GET'])]
    public function getOneProduct(Product $product, SerializerInterface $serializer): JsonResponse
    {
        $product = $serializer->serialize($product, 'json');
        if (!$product) return new JsonResponse(null, Response::HTTP_NOT_FOUND);
        return new JsonResponse($product, Response::HTTP_OK, [], true);
    }

    Apparemment c'est un problème d'encodage mais je ne vois pas ou serait l'erreur.

    Merci d'avance pour votre aide.

    -
    Edité par Azalim 5 février 2024 à 20:40:40

    • Partager sur Facebook
    • Partager sur Twitter

    Erreur Test : "Malformed UTF-8 characters"

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    • Editeur
    • Markdown