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

Python Discussion :

AssertEqual don't work


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2019
    Messages : 18
    Par défaut AssertEqual don't work
    j'aimerais bien insérer une variable dans le msg de assertequal
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dic = {"chat" : ("poisson","98")}
    find = " "
    for x in dic :
        if dic == "chat" :
            find = "Trouvé"
    assertEqual(find,"Trouvé"," Vous n'avez pas trouvé le mot chat dans le dictionnaire",dic,"dommage !")
    c'est la que ça bloque le fait d'avoir le ,dic, me met que assertEqual prend 3-4 arguments et non 6[

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    assertEqual est une fonction d'unittest que vous n'avez aucune bonne raison d'utiliser si vous débutez (sinon vous sauriez vous en servir.
    Par contre,rien ne vous empêche d'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if find=='Trouvé':
       print ('Trouvé')
    else:
       print(" Vous n'avez pas trouvé le mot chat dans le dictionnaire",dic,"dommage !")
    et de réfléchir à pourquoi "Trouvé" ne s'affiche jamais.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2019
    Messages : 18
    Par défaut
    merci de votre réponse mais j'ai besoin d'utiliser la fonction assertequal, je sais tres bien que je peux le faire avec des if/else et print. Donc je repose ma question comment insérer une variable dans le msg renvoyé par la fonction assertequal

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par ouranos88 Voir le message
    merci de votre réponse mais j'ai besoin d'utiliser la fonction assertequal, je sais tres bien que je peux le faire avec des if/else et print. Donc je repose ma question comment insérer une variable dans le msg renvoyé par la fonction assertequal
    Ouvrir votre tuto. préféré aux chapitres qui parlent de concaténation de chaine de caractères vous donnerait des réponses.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre Expert
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 513
    Par défaut
    Bonjour ouranos88.

    Je copie ici un exemple qui vient de la documentation de unittest :
    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
    17
    18
    19
    20
    import unittest
     
    class TestStringMethods(unittest.TestCase):
     
        def test_upper(self):
            self.assertEqual('foo'.upper(), 'FOO')
     
        def test_isupper(self):
            self.assertTrue('FOO'.isupper())
            self.assertFalse('Foo'.isupper())
     
        def test_split(self):
            s = 'hello world'
            self.assertEqual(s.split(), ['hello', 'world'])
            # check that s.split fails when the separator is not a string
            with self.assertRaises(TypeError):
                s.split(2)
     
    if __name__ == '__main__':
        unittest.main()
    Dans cet exemple, tu peux remarquer qu'il n'est pas écrit assertEqual(s.split(), ['hello', 'world']), mais self.assertEqual(s.split(), ['hello', 'world']), avec un self devant. Pour que ça marche, comme dans l'exemple, tu as besoin de créer une classe qui dérive de unittest.TestCase.

    Je te laisse adapter cet exemple à ton cas.

    Ensuite, si tu veux compléter le message d'erreur de assertEqual, regarde le lien que t'as donné wiztricks qui pointe vers la documentation de assertEqual : la signature de la fonction est : assertEqual(first, second, msg=None).

    Dans ton code, à la place d'un seul argument msg, tu essaies de fournir 3 arguments pour construire le message. Mais, à la place, tu peux construire ta chaîne en dehors, par exemple avec un code du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msg = "Le mot chat n'est pas dans le dictionnaire " + str(dic) + ". Dommage."
    Tu pourras alors appeler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.assertEqual(find, "Trouvé", msg)

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Et pourquoi assert tout court ne convient pas ?

Discussions similaires

  1. [Apache/WebDAV] SVNIndexXSLT don't work
    Par tequila13 dans le forum Subversion
    Réponses: 1
    Dernier message: 31/07/2007, 10h07
  2. Modélisation Work flow
    Par kirsoul dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 07/01/2005, 07h58
  3. [Kylix] Libc-The command don't start
    Par geminicryrulez dans le forum EDI
    Réponses: 1
    Dernier message: 12/06/2004, 10h15
  4. Connexion a une base Works (*.wdb)
    Par Harry dans le forum Bases de données
    Réponses: 2
    Dernier message: 24/05/2004, 13h51

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