Essais de méthodes de la classe avec pytest
Dans la documentation de pytest plusieurs exemples de cas de test sont répertoriés. La plupart d'entre eux montrent le test de fonctions. Mais je suis absent un exemple de la façon de tester les classes et les méthodes de la classe. Disons que nous avons la classe suivante dans le module cool.py
nous aimons test:
class SuperCool(object):
def action(self, x):
return x * x
Comment la fonction de la classe de test dans tests/test_cool.py
avez à regarder?
class TestSuperCool():
def test_action(self, x):
pass
Comment peut - test_action()
être utilisé pour tester action()
?
OriginalL'auteur laserbrain | 2016-09-08
Vous devez vous connecter pour publier un commentaire.
Tout ce que vous devez faire pour tester une méthode de classe est d'instancier cette classe, et l'appel à la méthode sur une instance de la:
qu'entendez-vous par la cartographie?
Je ne suis pas sûr de ce que tu veux dire par la cartographie dans ce cas, mais mon exemple doit travailler pour vous si vous l'essayez.
Je veux dire que la méthode
test_action()
est mappé suraction()
, de sorte qu'aucune instanciation est nécessaire (comme auto magie).et comment cette automagic serait de savoir quel genre d'affirmations et les contrôles que vous voulez faire? Explicite est mieux que implicites.
OriginalL'auteur elethan
Eh bien, une façon est simplement de créer votre objet à l'intérieur de la méthode d'essai et d'interagir avec elle à partir de là:
Vous peut apparemment utiliser quelque chose comme le classique
setup
etteardown
style unittest en utilisant les méthodes ici: http://doc.pytest.org/en/latest/xunit_setup.htmlJe ne suis pas à 100% de la façon dont ils sont utilisés, car la documentation pour pytest est terrible.
edit: ouais donc, apparemment, si vous faites quelque chose comme
OriginalL'auteur Tyler Sebastian
Je voudrais l'utiliser tout de luminaires seulement à créer un environnement de test (comme la connexion de base de données) ou des données de paramétrage.
Si vos données est relativement simple, vous pouvez le définir à l'intérieur du cas de test:
Exemple avec le paramétrage:
OriginalL'auteur Kirill