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

Symfony PHP Discussion :

Test fonctionnel et champ select [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2003
    Messages : 307
    Par défaut Test fonctionnel et champ select
    Hello

    Dans mes tests je n'arrive pas à sélectionner dans un select par sa valeur texte vu que les données sont dynamiques

    Mon form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <select id="enfance_mercredibundle_paiement_enfant" name="enfance_mercredibundle_paiement[enfant]" class="form-control">
    <option value="157">Louis Enfant 1</option>
    </select>
    J'attrape bien mon champ mais j'arrive pas à obtenir les valeurs

    Si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?php
    $value = $crawler->filter('#enfance_mercredibundle_paiement_enfant:contains("Louis Enfant 1")')->attr('class');
    Me donne "form-control"

    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?php
    $value = $crawler->filter('#enfance_mercredibundle_paiement_enfant:contains("Louis Enfant 1")')->attr('value');
    Me renvoie null

    J'ai aussi essayé avec ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?php
    $value = $crawler->filter('#enfance_mercredibundle_paiement_enfant:contains("Louis Enfant 1")')->children();
    Mais je me perds

    Le but final étant

    [CODE]
    <?php
    $form['enfance_mercredibundle_paiement[enfant]']->select($value);
    [CODE]

    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Par défaut
    Bonsoir,

    une balise select n'ayant pas d'attribut "value", ça parait normal (mais pas pratique il est vrai).
    essaie comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $option=$crawler->filter('#enfance_mercredibundle_paiement_enfant option:contains("Louis Enfant 1")');
    $this->assertEquals(1,count($option), 'Option "Louis Enfant 1 non trouvée');
    $value = $option->attr('value');
    $form['enfance_mercredibundle_paiement[enfant]']->select($value);

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2003
    Messages : 307
    Par défaut
    Youpie ça marche !

    Merci

    Peux m'expliquer la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->assertEquals(1,count($option), 'Option "Louis Enfant 1 non trouvée');
    que vient faire le non trouvée ?

    Merci

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //ce sera mieux comme cela en fait
    $this->assertEquals(1,count($option), count($option).' option(s) trouvée(s) pour  "Louis Enfant 1"');
    ça me parait assez explicite, le test échouera si l'option dont tu as besoin n'est pas trouvée (mauvais chargement des données de test par exemple).
    Evidemment il échouera de toute façon, mais plus le problème est identifié tôt avec un texte clair, plus il sera facile d'identifier le problème.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2003
    Messages : 307
    Par défaut
    Ha ok c'est le message qui s'affiche en cas d'échec

    Ok merci encore

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

Discussions similaires

  1. Test sur un champ
    Par diaboloche dans le forum Langage
    Réponses: 2
    Dernier message: 17/10/2005, 20h03
  2. [Dates] Test sur un champ de formulaire
    Par rdams dans le forum Langage
    Réponses: 4
    Dernier message: 15/09/2005, 16h03
  3. Personnalisation d'un champ select : modifier la fleche
    Par teshub dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 05/09/2005, 15h57
  4. UPDATE d'une table avec test d'un champ d'une autre table
    Par delphim dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/05/2004, 12h30
  5. Test sur un champs vide
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 27/04/2004, 12h54

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