Mock in python - Comment utiliser mox

Je veux faire une maquette pour un cours que je n'ai pas encore fait

Si vous souhaitez créer le côté contrôle pour le moment, vous pouvez reporter la création du modèle.

test_login.py


import unittest

class TestLoginMethod(unittest.TestCase)

    def test_login_returns_true(self):
        m = mox.Mox()
        user = m.CreateMockAnything() #Intention de créer une classe de modèle utilisateur dans le futur
        user.account().AndReturn("norobust") #Renvoyer le nom du compte pour le moment
        l = Login() #Classe de connexion à développer
        l.user = user #Passer une maquette pour qu'elle puisse être référencée à partir de la classe Login

        m.ReplayAll() #commence mox!
        self.assertTrue(l.login()) #Test de connexion!
        m.VerifyAll() #contrôle des résultats mox!

VerifyAll avec mox pour vérifier si la méthode que vous avez configurée (user.account () dans ce cas) a été appelée.

Je veux faire une simulation d'une classe qui existe déjà

Lorsque le test ci-dessus est terminé et que la classe User est terminée, arrêtez CreateMockAnything et Faites-le simplement m.CreateMock (User).

Je veux remplacer la méthode et transmettre des données factices (simulacre)

Dans le cas ci-dessus, c'est comme l.user = user```, mais en fait écrivez quelque chose comme self.user = get_user_by_id (1) `` dans Login.login (). Je pense que vous obtiendrez un modèle d'utilisateur. Si get_user_by_id est vraiment appelé, vous ne pouvez pas transmettre la maquette utilisateur que vous avez créée. Dans ce cas, au lieu de vous moquer de la classe Login, il vous suffit de stub get_user_by_id ().

test_login.py


import unittest

class TestLoginMethod(unittest.TestCase)

    def test_login_returns_true(self):
        m = mox.Mox()
        user = m.CreateMockAnything() #Modèle utilisateur que je n'ai pas encore créé ...
        user.account().AndReturn("norobust") #Renvoyer le nom du compte pour le moment
        l = Login() #Classe de connexion à développer
        m.StubOutWithMock(Login, 'get_user_by_id') #Stubbing
        Login.get_user_by_id().AndReturn(user) #Définir la valeur de retour de la fonction stubisée

        m.ReplayAll() #commence mox!
        self.assertTrue(l.login()) #Test de connexion!
        m.VerifyAll() #contrôle des résultats mox!

Faites attention

Résumé

  1. CreateMockAnything est bon pour écrire du code d'implémentation approximatif, comme commencer à écrire du code
  2. Je n'aime pas CreateMockAnything, je vais donc ajouter un test avec CreateMock.
  3. Avec CreateMock, vous devez réellement écrire la classe, alors écrivez la classe requise
  4. Visez la complétion avec StubOutWithMock pour accumuler des implémentations plus détaillées
  5. Si vous le remarquez, c'est terminé ( ̄ ー  ̄)

Recommended Posts

Mock in python - Comment utiliser mox
Python-Comment utiliser pyinstaller
Comment utiliser les classes dans Theano
Comment utiliser SQLite en Python
Comment utiliser Mysql avec python
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Comment utiliser les colonnes calculées dans CASTable
[Introduction à Python] Comment utiliser la classe en Python?
Comment utiliser Google Test en langage C
Un moyen simple d'utiliser Wikipedia avec Python
Connaissances minimales pour utiliser Form avec Flask
Comment utiliser l'interpréteur d'Anaconda avec PyCharm
Comment utiliser __slots__ dans la classe Python
Comment utiliser les expressions régulières en Python
Comment utiliser Map dans ViewPager d'Android
Comment utiliser is et == en Python
Comment utiliser la bibliothèque C en Python
Comment utiliser la bibliothèque d'images Python dans la série python3
Résumé de l'utilisation de MNIST avec Python
EP 11 Utiliser `zip` pour traiter les itérateurs en parallèle
Utilisez un module de cryptographie qui gère OpenSSL en Python
Comment utiliser tkinter avec python dans pyenv
Détecter les anomalies dans les phrases en utilisant ELMo, BERT, USE
Connectez-vous avec json en utilisant pygogo.
Comment se moquer d'une fonction publique dans Pytest
Utilisez os.getenv pour obtenir des variables d'environnement en Python
Comment utiliser xml.etree.ElementTree
Comment utiliser Python-shell
Remarques sur l'utilisation de tf.data
Utilisez config.ini avec Python
Comment utiliser Seaboan
Comment utiliser la correspondance d'image
Comment utiliser le shogun
Utilisez Mock avec pytest
Comment utiliser Pandas 2
Utiliser DataFrame en Java
Utiliser des dates en Python
Je veux utiliser self avec Backpropagation (tf.custom_gradient) (tensorflow)
Comment utiliser Virtualenv
Comment utiliser numpy.vectorize
Comment utiliser pytest_report_header
Flacon facile à utiliser
Utiliser Valgrind avec Python
Un mémorandum sur l'utilisation de keras.preprocessing.image de Keras
Comment utiliser partiel
Comment installer Google Test / Google Mock dans Visual Studio 2019
Comment utiliser Bio.Phylo
Comment utiliser SymPy
Comment utiliser x-means
Comment utiliser WikiExtractor.py
Comment utiliser IPython
Comment utiliser le bootstrap dans la vue de classe générique Django
Comment utiliser virtualenv
Comment utiliser le moteur de modèle dans une application de fichier de Pyramid
Comment utiliser la clause exist dans l'ensemble de requêtes Django
Définissez les arguments mot-clés du constructeur sur les attributs fictifs en Python
Comment utiliser Matplotlib
Utiliser ujson dans les requêtes
Comment utiliser des variables dans les fichiers de définition d'unité systemd