unittest learning

Basic example

 

 1 import unittest
 2 
 3 class TestStringMethods(unittest.TestCase):
 4 
 5     def test_upper(self):
 6         self.assertEqual('foo'.upper(), 'FOO')
 7 
 8     def test_isupper(self):
 9         self.assertTrue('FOO'.isupper())
10         self.assertFalse('Foo'.isupper())
11 
12     def test_split(self):
13         s = 'hello world'
14         self.assertEqual(s.split(), ['hello', 'world'])
15         # check that s.split fails when the separator is not a string
16         with self.assertRaises(TypeError):
17             s.split(2)
18 
19 if __name__ == '__main__':
20     unittest.main()

 

The setUp() and tearDown() methods allow you to define instructions that will be executed before and after each test method. 

unittest.main() provides a command-line interface to the test script

 

 Command-Line Interface

1 python -m unittest test_module1 test_module2 

2 python -m unittest test_module.TestClass

3 python -m unittest test_module.TestClass.test_method
 

You can pass in a list with any combination of module names, and fully qualified class or method names.

Organizing test code

Tests can be numerous, and their set-up can be repetitive. Luckily, we can factor out set-up code by implementing a method called setUp(), which the testing framework will automatically call for every single test we run:

 1 import unittest
 2 
 3 class WidgetTestCase(unittest.TestCase):
 4     def setUp(self):
 5         self.widget = Widget('The widget')
 6 
 7     def test_default_widget_size(self):
 8         self.assertEqual(self.widget.size(), (50,50),
 9                          'incorrect default size')
10 
11     def test_widget_resize(self):
12         self.widget.resize(100,150)
13         self.assertEqual(self.widget.size(), (100,150),
14                          'wrong size after resize')

tearDown() method that tidies up after the test method has been run

If setUp() succeeded, tearDown() will be run whether the test method succeeded or not

 

 

 

posted @ 2016-12-25 19:25  小_龟  阅读(128)  评论(0编辑  收藏  举报