Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

<?php
/**
 * Created by IntelliJ IDEA.
 * User: MAXIME EPOH
 * Date: 04/03/2018
 * Time: 17:20
 */

namespace Framework\Router {

    /**
     * Class Route
     * Represent a matched route
     * @package Framework\Router
     */
    class Route {

        /**
         * @var string
         */
        private $name;

        /**
         * @var callable
         */
        private $callback;

        /**
         * @var array
         */
        private $parameters;

        /**
         * Route constructor.
         * @param string $name
         * @param callable $callback
         * @param array $parameters
         */
        public function __construct(string $name, callable $callback, array $parameters)
        {
            $this->name = $name;
            $this->callback = $callback;
            $this->parameters = $parameters;
        }

        /**
         * @return string   
         */
        public function getName(): string {
            return $this->name;
        }

        /**
         * @return callable
         */
        public function getCallback(): callable {
            return $this->callback;
        }

        /**
         * Retrieve the URL Parameters
         * @return string[]
         */
        public function getParams(): array {
            return $this->parameters;
        }

    }
}

Ce que je veux

Je voudrais pouvoir éliminer l'erreure que j'otiens de la ligne 39 de mon Route.php

Ce que j'obtiens

C:\WebPages\MonFramework>.\vendor\bin\phpunit
PHPUnit 7.0.2 by Sebastian Bergmann and contributors.

.....EEEE 9 / 9 (100%)

Time: 209 ms, Memory: 4.00MB

There were 4 errors:

1) Tests\Framework\RouterTest::testGetMethod
ArgumentCountError: Too few arguments to function Framework\Router\Route::__construct(), 0 passed in C:\WebPages\MonFramework\tests\Framework\RouterTest.php on line 29 and exactly 3 expected

C:\WebPages\MonFramework\src\Framework\Router\Route.php:39
C:\WebPages\MonFramework\tests\Framework\RouterTest.php:29

2) Tests\Framework\RouterTest::testGetMethodIfUrlDoesNotExists
ArgumentCountError: Too few arguments to function Framework\Router\Route::__construct(), 0 passed in C:\WebPages\MonFramework\tests\Framework\RouterTest.php on line 29 and exactly 3 expected

C:\WebPages\MonFramework\src\Framework\Router\Route.php:39
C:\WebPages\MonFramework\tests\Framework\RouterTest.php:29

3) Tests\Framework\RouterTest::testGetMethodWithParameters
ArgumentCountError: Too few arguments to function Framework\Router\Route::__construct(), 0 passed in C:\WebPages\MonFramework\tests\Framework\RouterTest.php on line 29 and exactly 3 expected

C:\WebPages\MonFramework\src\Framework\Router\Route.php:39
C:\WebPages\MonFramework\tests\Framework\RouterTest.php:29

4) Tests\Framework\RouterTest::testGenerateUri
ArgumentCountError: Too few arguments to function Framework\Router\Route::__construct(), 0 passed in C:\WebPages\MonFramework\tests\Framework\RouterTest.php on line 29 and exactly 3 expected

C:\WebPages\MonFramework\src\Framework\Router\Route.php:39
C:\WebPages\MonFramework\tests\Framework\RouterTest.php:29

ERRORS!
Tests: 9, Assertions: 10, Errors: 4.

Merci pour votre soutien.
Amicalement

2 réponses


Warzik
Réponse acceptée

Salut, je pense que dans ton fichier RouterTest.php vers la ligne 29, tu as dû instancier l'objet Route sans lui passer de paramètre et c'est ça qui a causé l'erreur, d'ailleurs si ce code vient de la formation de Grafikart sur la POO, c'est pas l'objet Route qu'il faut instancier dans les tests mais c'est l'objet Router qui lui ne prend pas de paramètre.

Diarill
Auteur

Merci Shouky Tout fonctionne bien maintenant.