Python test pour vérifier le type d'instance
Je veux utiliser unittest en python pour vérifier si une méthode retourne un objet de la classe à droite.
Chaque exemple dans le web montre des tests pour 'type' retourné.
Par exemple, pour vérifier <type 'list'>
ou <type 'type'>
, on pourrait utiliser:
self.assertIsInstance(result, list)
self.assertIsInstance(result[0], tuple)
Ce que je cherche, c'est un exemple pour vérifier <class'sqlalchemy.orm.query.Query'>
Serais reconnaissant de toute aide. Merci.
...quel est le problème, alors? Il suffit de passer la requête de la classe de
Je pense que
isinstance
.Je pense que
isInstance
n'est pas la bonne méthode à utiliser. Au lieu de cela assertIs
fonctionne très bien.OriginalL'auteur Bhavtosh | 2015-11-11
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
assertIsInstance()
, probablement à l'aide deisinstance()
qui est recommandé fonction pour tester les types. Vous pouvez égalementassertIs()
ouassertTrue()
combiné avectype()
selon le contexte:L'erreur d'assertion de la
test_assert_is(self)
pourrait conduire à croire que le type 1 n'est pas entier mais c'est la comparaison de l'objet représenté par 1 et l'objet qui décrit le type d'un nombre entier. C'est probablement pourquoiisinstance()
est préféré car il est plus prolixe sur ce que c'est de la vérification et de moins de frappe est en cause, donc, en général, moins sujettes à erreur.assertIs
a fait le travail!!. Merci.Le traceback fait ressembler à la seconde affirmation,
assertIs()
, a échoué.Merci pour cette remarque, testés et mis à jour le code.
Les résultats pourraient être plus faciles à comprendre que les trois tests distincts. (
test_assert_true
,test_assert_is_instance
, ettest_assert_is
)OriginalL'auteur Brock Hargreaves
Cela devrait fonctionner:
Vous avez besoin d'avoir
import sqlalchemy
dans le fichier.assertIsInstance
n'est pas la bonne méthode d'essai à utiliser. Il est revenu cette erreur:AssertionError: <class 'sqlalchemy.orm.query.Query'> is not an instance of <class 'sqlalchemy.orm.query.Query'>
. Totalement ne fait pas sens, mais @Brock Hargreaves 'méthode a fait le tour.OriginalL'auteur Vivek Pandey