【Python】unittest-1

一、Unittest 单元测试 将测试结果和期望值作对比

(1)       继承

(2)       引用包

(3)       执行一次test就会调用一次setup和tearDown

(4)       类名以test开头

(5)       断言异常

(6)       有一个点表示通过一个测试用例

二、如果有一个单元测试执行失败,抛异常或断言失败,依然会被执行。断言失败会显示E

凡是以test开头的方法都是测试方法,反之不是,测试时候不会执行。其中,unittest.TestCase提供很多内置的条件判断,我们可以调用这些方法断言输出是否是我们所预计的。
一般分为两种,一种是assertEqual():断言某两个结果是否一致。一种是assertRaises():断言是否是期待抛出的指定错误类型。

另外,可以通过在单元测试中增加两个特殊函数setUp()和tearDown()函数,已实现在每调用一个测试方法的前后分别执行指定的动作,其中setUp是在测试函数调用前执行,tearDown是在之后执行,每次执行用例时都会: setUp->test_case->tearDown ;也就是说可以使用setUp和tearDown做每个用例的环境初始化

dome1:

每次执行用例时都会: setUp->test_case->tearDown ;也就是说可以使用setUp和tearDown做每个用例的环境初始化

 1 import unittest  
 2   
 3   
 4 class MyTestCase(unittest.TestCase):  
 5     # 预置环境  
 6     def setUp(self):  
 7         print '开始执行'  
 8   
 9     # 清理环境  
10     def tearDown(self):  
11         print '结束执行'  
12   
13     # 测试用例  
14     def test_case1(self):  
15         print '用例1'  
16   
17     # 测试用例  
18     def test_case2(self):  
19         print '用例2'  
20   
21 if __name__ == '__main__':  
22     unittest.main()  

dome2:

每个class用一次,setUpClass->test_case1->test_case2->tearDownClass;也就是说使用setUpClass、tearDownClass可以做所有用例的前置初始化和结束

 1 import unittest  
 2   
 3   
 4 class MyTestCase(unittest.TestCase):  
 5     @classmethod  
 6     def setUpClass(cls):  
 7         print '开始执行'  
 8  
 9     @classmethod  
10     def tearDownClass(cls):  
11         print '结束执行'  
12   
13     # 测试用例  
14     def test_case1(self):  
15         print '用例1'  
16   
17     # 测试用例  
18     def test_case2(self):  
19         print '用例2'  
20   
21 if __name__ == '__main__':  
22     unittest.main()  

三、unittest练习

#写一个读文件的类,里面有个方法可以读取文件的全部内容。
#写个单元测试,断言文件中包含关键字"glory road"

main.py

 1 import unittest
 2 import random
 3 from handle_file import HandleFile
 4 
 5 class TestSequenceFunctions(unittest.TestCase):
 6     def test_run(self):
 7         content = HandleFile.read_file("e:\\test4\\ip.txt")
 8         self.assertTrue("glory road" in content)
 9         
10 if __name__ == "__main__":
11     unittest.main()

handle_file.py

 1 import os
 2 
 3 class HandleFile():
 4     @staticmethod
 5     def read_file(file_path):
 6         if os.path.exists(file_path):
 7             with open(file_path) as f:
 8                 return f.read()
 9         else:
10             return "no file"
11 
12 
13 
14 if __name__=="__main__":
15     hf=HandleFile()
16     print hf.read_file("e:\\test4\\ip.txt")
 2 

猜你喜欢

转载自www.cnblogs.com/jingsheng99/p/9094642.html