Test Driven Development in Python

1,755 views
1,562 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,755
On SlideShare
0
From Embeds
0
Number of Embeds
542
Actions
Shares
0
Downloads
21
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Test Driven Development in Python

  1. 1. Test Driven Development in Python Anoop Thomas Mathew Agiliq Info Solutions Pvt. Ltd.
  2. 2. Overview● About TDD● TDD and Python● unittests● Developing with Tests● Concluding Remarks● Open Discussion
  3. 3. “ Walking on water and developing software from a specification are easy if both are frozen. ” - Edward V Berard
  4. 4. 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 !
  5. 5. 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
  6. 6. Unittestimport unittestclass MyTest(unittest.TestCase): def testMethod(self): self.assertEqual(1 + 2, 3, "1 + 2 !=3")if __name__ == __main__: unittest.main()
  7. 7. import unittestfrom demo import Greater The Testclass DemoTest(unittest.TestCase): def test_number(self): comparator = Greater() result = comparator.greater(10,5) self.assertTrue(result) def test_char(self): comparator = Greater() result = comparator.greater(abcxyz, AB) self.assertTrue(result) def test_char_equal(self): comparator = Greater() result = comparator.greater(4, 3) self.assertTrue(result)if __name__ == __main__: unittest.main()
  8. 8. 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
  9. 9. Test Again1. Add new test for features/bugs2. Resolve the issue, make the test succeed.3. Iterate from Step 1
  10. 10. Beware!!!Murphy is everywhere.
  11. 11. Lets Discuss

×