Python-Unittest
* Sample Class (Person Class):
class Person ():
name_ls = []
def set_name(self, new_name: str):
self.name_ls.append (new_name)
return len (self.name_ls) - 1 # returning index
def get_name(self, ind: int):
if ind < len (self.name_ls):
return self.name_ls[ind]
else:
return None
if __name__ == '__main__':
myperson = Person ()
print ('User xyz has been added with id ', myperson.set_name ('xyz'))
print ('User abc has been added with id ', myperson.set_name ('abc'))
print ('User associated with id 0 is ', myperson.get_name (0))
print ('User associated with id 1 is ', myperson.get_name (1))
print ('User associated with id 0 is ', myperson.get_name (17))
print (myperson.name_ls)
* Sample Unittest Class (PersonTest.py):
import Person as PersonClass
import unittest
class Test (unittest.TestCase):
po = PersonClass.Person ()
test_name_ls = []
sample_ind_ls = []
def test_0_set_name(self): # Caution: test_(execution_index_must)_fname()
for i in range (5):
local_name = str (i) * 2
test_ind = self.po.set_name (new_name=local_name)
self.assertIsNotNone (test_ind)
self.test_name_ls.append (local_name)
self.sample_ind_ls.append (test_ind)
def test_1_get_name(self): # test_(execution_index_must)_f()
for ind, nname in enumerate(self.test_name_ls):
self.assertEqual (nname, self.po.get_name (ind))
if __name__ == '__main__':
unittest.main ()
Output:
============================= test session starts ============================== collecting ... collected 2 items PersonTest.py::Test::test_0_set_name PASSED [ 50%] PersonTest.py::Test::test_1_get_name PASSED [100%] ============================== 2 passed in 0.01s ===============================