Test Driven Development in Python Anoop Thomas Mathew Agiliq Info Solutions Pvt. Ltd.
Overview● About TDD● TDD and Python● unittests● Developing with Tests● Concluding Remarks● Open Discussion
“ Walking on water and developing software from a specification are easy if both are frozen. ” - Edward V Berard
About Test Driven Development (TDD)● Write tests for the use case● Run it (make sure it fails and fails miserably)● Write code and implement the required functionality with relevant level of detail● Run the test● Write test for addition features● Run all test● Watch it succeed. Have a cup of coffee !
Advantages of TDD● application is determined by using it● written minimal amount of application code – total application + tests is probably more – objects: simpler, stand-alone, minimal dependencies● tends to result in extensible architectures● instant feedback
class Greater(object): The Program def greater(self, val1, val2): if type(val1) ==str or type(val2) == str: val1 = str(val1) val2 = str(val2) sum1 = sum([ord(i) for i in val1]) sum2 = sum([ord(i) for i in val2]) if sum1 > sum2: return True else: return False if val1>val2: return True else: return False
Test Again1. Add new test for features/bugs2. Resolve the issue, make the test succeed.3. Iterate from Step 1