[Python] Ce que j'ai fait pour faire un test unitaire

table des matières

Conditions préalables

Quelqu'un qui peut faire une petite opération sur un écran noir La spécification peut être n'importe quoi tant que Python fonctionne

Qu'est-ce que UnitTest en premier lieu?

Test de l'unité(Test de l'unité)Quel est|Types de validation logicielle|Techmatrix Co., Ltd.

Il s'agit de tester si un programme fonctionne correctement avec la plus petite granularité qui constitue le programme, comme les méthodes du programme. Dans l'industrie informatique, cela s'appelle également un test unitaire.

Il existe des bibliothèques qui effectuent des tests unitaires dans chaque langue. Ci-dessous un exemple

En passant, dans Ruby etc., Minitest et Rspec sont le mécanisme du test unitaire.

Que devez-vous faire pour tester?

Pour exécuter UnitTest en Python, écrivez un fichier Py pour écrire le code de test.

Veuillez vous référer à la documentation officielle japonaise pour rédiger des tests détaillés.

unittest - Framework de test unitaire - Documentation Python 3.8.6

Créez les fichiers suivants en utilisant VSCode, etc.

Dans ce cas, un scénario de test qui échoue intentionnellement est décrit.

sample.py

import unittest

class TestStringMethods(unittest.TestCase):

    def test_false(self): 
        self.assertFalse("hoge", "hoge")

if __name__ == '__main__':
    unittest.main()

Ensuite, essayez d'exécuter le programme sur la console.

Lors de l'exécution sur la CLI, vous pouvez exécuter UnitTest avec la commande suivante.

python3 -m unittest sample.py

======================================================================
FAIL: test_false (test.sample.TestStringMethods)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/pcuser/Documents/GitHub/pysecret/test/sample.py", line 6, in test_false
    self.assertFalse("hoge", "hoge")
AssertionError: 'hoge' is not false : hoge

----------------------------------------------------------------------
Ran 1 test in 0.001s

FAILED (failures=1)

Si FAILD s'affiche et que cela échoue comme ça, c'est OK Si ERROR s'affiche, il peut s'agir d'un problème grammatical en Python, veuillez donc le rechercher sur Google.

Certaines des erreurs les plus courantes en Python sont: [Insérer un message d'erreur de référence]

Vous ne pouvez pas appeler la méthode?

Après cela, je vais décrire le cas de test.

Afin de rendre le test aussi pratique que possible, créez un programme à tester.

hello.py


def helloMethod(str):
    msg = str
    return msg

if __name__ == '__main__':
    main()

Après cela, ajoutons ʻinport hello` à test.py pour que helloMethod puisse être appelé.

import unittest
import hello <-Comme ça

Informations à saisir Quelles sont les informations à sortir?

Cette fois, j'ai créé une méthode pour renvoyer un simple perroquet. Ce que vous passez en entrée est la variable str de la chaîne que vous passez comme argument de la méthode. Et la valeur attendue est que str sera renvoyé en sortie lorsque la méthode est exécutée.

import unittest
import hello

class TestStringMethods(unittest.TestCase):

    # def test_false(self):
    #     self.assertFalse("hoge", "hoge")
    
    def test_hello(self):
        input_str =  "Hello"
        msg = hello.helloMethod(input_str)
        self.assertEqual(msg, input_str)

if __name__ == '__main__':
    unittest.main()

Que dois-je faire pour réussir le test?

Pour vérifier que le résultat est correct, utilisez la méthode Assert avec la valeur stockée dans la variable msg. Assurez-vous que les valeurs de input_str sont identiques.

Pour écrire, puisque la méthode Assert de la classe UnitTest est utilisée, utilisez self.assertEqual.

Puisqu'il était déjà écrit sur la source, exécutez à nouveau la même commande qui a confirmé le démarrage d'UnitTest lui-même.

python3 -m unittest sample.py


.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

Si vous voyez le mot OK sur la console, le test est réussi.

Recommended Posts

[Python] Ce que j'ai fait pour faire un test unitaire
Ce que j'ai fait pour économiser la mémoire Python
Je veux faire le test de Dunnett en Python
Ce que j'ai fait lors de la mise à jour de Python 2.6 vers 2.7
Que faire avec la sortie de PYTHON?
Ce que j'ai fait pour accueillir le Python2 EOL en toute confiance
Comment faire un test de sac avec python
Ce que j'ai fait avec les tableaux Python
Ce que j'étais accro à Python autorun
Ce que j'ai fait quand je voulais rendre Python plus rapide -Édition Numba-
Que faire pour obtenir une feuille de calcul Google en Python
modèle de test unitaire python
[Chez Coder] Ce que j'ai fait pour atteindre le rang vert en Python
Après tout, que dois-je utiliser pour faire des comparaisons de types en Python?
Que faire lorsque l'imitation est intégrée à Python
Je veux écrire en Python! (2) Écrivons un test
Que faire lorsque "impossible d'importer le nom xxx" [Python]
Écrire du code dans UnitTest une application Web Python
J'ai créé une bibliothèque python qui fait rouler le rang
Ce que j'ai fait pour établir une connexion SSH à l'environnement VPS Ubuntu
Ce à quoi j'étais accro lors de l'utilisation de Python tornado
Je veux faire quelque chose avec Python à la fin
Ce que j'ai appris en Python
Que faire lorsque ʻarguments [0] .scrollIntoView (); `échoue dans python sélénium
Ce que j'ai fait pour accélérer la tâche de recherche de chaînes
Je veux faire quelque chose comme sort uniq en Python
Ce à quoi j'étais accro lorsque l'utilisateur de traitement est passé à Python
Que faire lorsque "SSL: CERTIFICATE_VERIFY_FAILED _ssl.c: 1056" apparaît en Python
Que faire quand Ubuntu plante
[Python] Comment faire PCA avec Python
Que faire si yum casse
J'ai essayé de toucher Python (installation)
Que faire avec l'installation de Magics
H29.2.27 ~ 3.5 Résumé de ce que j'ai fait
Pour faire une récursion avec Python2
Sortie du journal de test unitaire avec python
Je veux faire ○○ avec les Pandas
Je veux déboguer avec Python
Python | Ce que vous pouvez faire avec Python
N'a pas changé de Python 2 à 3
Ce que j'ai fait pour générer les journaux d'application dans l'environnement flexible GAE.
Notez ce que vous avez fait pour utiliser Flycheck avec Python
Que faire si Python ne fonctionne pas sur Git pour Windows
Que faire si vous ne pouvez pas installer pyaudio avec pip #Python
Que faire si vous obtenez moins zéro en Python
Je voulais le faire comme exécuter un cas de test pour AtCoder.
Ce à quoi j'étais accro en présentant ALE à Vim pour Python
Ce à quoi j'étais accro avec json.dumps dans l'encodage base64 de Python
Que faire lorsque python dit "erreur fatale: fichier 'stdio.h' introuvable"
Je souhaite rechercher le texte intégral avec elasticsearch + python
Que faire si un avertissement de plate-forme non sécurisée apparaît lors de l'exécution de Python
Je voulais faire quelque chose comme la pipe d'Elixir en Python
Que faire si PyAudio ne peut pas être installé sur Python 3.7, 3.8, 3.9 sous Windows
Que faire lorsque vous obtenez "Je ne peux pas voir le site !!!!"
Que faire lorsque ModuleNotFoundError: Aucun module nommé'XXX 'ne se produit en Python
Que faire lorsque le type de valeur est ambigu en Python?
Que dois-je faire avec la structure de répertoires Python après tout?