Pythonunittest-1

Posted 下辈子做一只猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pythonunittest-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 

 




以上是关于Pythonunittest-1的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数