Supposons que vous ayez tous vos codes dans main.py
def format_person_info(h, a, b= None):
if b != None:
a = ("{} , {} , {}".format(h, b, a))
else:
a = ("{} , {}".format(h, a))
return a
Vous pouvez lancer le test de cette méthode comme ci-dessous tests.py
:
import main
import unittest
class hab_Test_Class(unittest.TestCase):
def test_pass2(self):
return_value = main.format_person_info("shovon","ar")
self.assertIsInstance(return_value, str, "The return type is not string")
self.assertEqual(return_value, "shovon , ar", "The return value does not match for 2 parameters")
def test_pass3(self):
return_value = main.format_person_info("shovon","ar",18)
self.assertIsInstance(return_value, str, "The return type is not string")
self.assertEqual(return_value, "shovon , 18 , ar", "The return value does not match for 3 parameters")
# i will use code below to run the unit test
t = hab_Test_Class()
suite = unittest.TestLoader().loadTestsFromModule(t)
unittest.TextTestRunner().run(suite)
Lorsque vous exécutez les tests, la sortie sera comme ci-dessous :
..
----------------------------------------------------------------------
Ran 2 tests in 0.016s
OK
Maintenant, voyons ce que nous avons fait. Nous avons vérifié que le type de retour est une chaîne comme nous l'avions prévu en utilisant assertIsInstance
et nous avons vérifié la sortie pour deux et trois paramètres en utilisant assertEqual
. Vous pouvez jouer avec ceci en utilisant un ensemble de tests valides et invalides avec assertEqual
. La documentation officielle a une brève description de unittest dans ce document officiel Unit testing framework.
Veuillez corriger votre indentation. Suivez ceci: https://stackoverflow.com/help/mcve – arsho
Votre question n'est pas claire. Vous savez que vous devez tester la fonction est correcte avec différents paramètres, alors qu'est-ce qui vous empêche d'écrire des tests où vous l'appelez avec ces paramètres et vérifiez les réponses? –