IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Erreur "Cannot access protected property"


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    testeur logiciel
    Inscrit en
    Juin 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : testeur logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2007
    Messages : 126
    Par défaut Erreur "Cannot access protected property"
    Bonjour à tous,

    Dans un fichier FctGeneriques.php j'ai ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    class FctGeneriques
    {  
       public function VerifierPresenceMessage($TestsSelenium, $Message)
       {     
         try 
         {
            $TestsSelenium->assertFalse($TestsSelenium->isTextPresent($Message));
          } 
         catch (PHPUnit_Framework_AssertionFailedError $e) 
         {
            $TestsSelenium->captureEntirePageScreenshot("/home/julien/Images/testSaisirEntierementFormulaire", "");    
            array_push($TestsSelenium->verificationErrors, $e->toString());
         }
       }
    }

    Dans mon fichier popup.php j'ai ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    require_once 'PHPUnit/Extensions/SeleniumTestCase.php';
    require_once "FctGeneriques.php";
     
    class mestests extends PHPUnit_Extensions_SeleniumTestCase
    {
       public function testSaisirEntierementFormulaire ()
       {
          $goTests = new FctGeneriques(); 
     
          $goTests->OuvrirJoomla($this);
          $goTests->OuvrirPopUpFormulaireMail($this);
          ...
          $goTests->VerifierPresenceMessage($this, "Cet e-mail n'a pas pu être envoyé");
       }
    }
    Le problème est que j'obtiens ce message d'erreur:

    Cannot access protected property mestests::$verificationErrors in /var/www/html/selenium/tests/FctGeneriques.php on line 65
    car dans le fichier SeleniumTestCase.php la variable $verificationErrors est définie comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    protected $verificationErrors = array();
    Comment faire pour utiliser la variable $verificationErrors correctement?

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonsoir,

    Une propriété déclaré protected n'est accessible que dans le fichier de déclaration de la class, utilise private avec un getter pour l'accès.

    A+.

  3. #3
    Membre confirmé
    Homme Profil pro
    testeur logiciel
    Inscrit en
    Juin 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : testeur logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2007
    Messages : 126
    Par défaut
    Bonsoir et merci pour ta réponse.

    Quand tu dis utilise private, tu veux dire de passer la variable $verificationErrors en private?

    Je ne peux pas passer cette variable à private car cette classe ne m'appartient pas, c'est une classe de phpunit.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Logiquement il doit y avoir une méthode getVerificationErrors ou quelque chose du genre dans ta classe, qui renvoie $this->verificationErrors.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre confirmé
    Homme Profil pro
    testeur logiciel
    Inscrit en
    Juin 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : testeur logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2007
    Messages : 126
    Par défaut
    Bonjour,

    Oui effectivement il y a une fonction getVerificationErrors() et sa marche parfaitement.

    Merci a toi.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/03/2014, 13h09
  2. [ACCESS][JAVA][INSERT][QUOTE]Pb insertion quot
    Par 205 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 31/01/2008, 17h00
  3. Erreure sur bd access 2003
    Par alias123 dans le forum Access
    Réponses: 4
    Dernier message: 26/12/2005, 16h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo