Parameterization
Key 2: Manageable inputs to tests.
For the tests where we have to test various inputs for the same functionality or transformations, we have to write test cases to cover test different inputs. We can use parameterization here. In this way, we invoke the same test case with different inputs, hence, decreasing time and errors that are associated with it. Newer Python versions 3.4 or higher include a very useful method, subTest
in unittest.TestCase
, which makes it very easy to add parameterized tests. In the test output, please note that the parameterized values are also available:
import unittest from itertools import combinations from functools import wraps def convert(alpha): return ','.join([str(ord(i)-96) for i in alpha]) class TestOne(unittest.TestCase): def test_system(self,): cases = [("aa","1,1"),("bc","2,3"),("jk","4,5"),("xy","24,26")] for case in cases: with self.subTest(case=case): self.assertEqual...