zoukankan      html  css  js  c++  java
  • 【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 
    
  • 相关阅读:
    程序文档的写法
    EF+Mysql
    R语言基础3
    R语言基础2
    R语言基础1
    搭建私有Docker Registry
    使用镜像仓库托管自己构建的Docker镜像
    构建自己的Tomcat镜像
    官方Tomcat镜像Dockerfile分析及镜像使用
    Docker镜像构建的两种方式
  • 原文地址:https://www.cnblogs.com/jingsheng99/p/9094642.html
Copyright © 2011-2022 走看看