Bonjour ouranos88.
Je copie ici un exemple qui vient de la documentation de unittest :
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 :
msg = "Le mot chat n'est pas dans le dictionnaire " + str(dic) + ". Dommage."
Tu pourras alors appeler :
self.assertEqual(find, "Trouvé", msg)
Partager