zoukankan      html  css  js  c++  java
  • Python 单元测试

    1、Python单元测试的使用

    单元测试代码如下:

    #coding:utf-8
    import unittest
    class TestMethod(unittest.TestCase):
    
        @classmethod
        def setUpClass(cls):
            print("类执行之前的方法")
    
        @classmethod
        def tearDownClass(cls):
            print("类执行之后的方法")
    
        # 每次方法执行之前执行
        def setUp(self):
            print('test-->setup')
        # 每次方法执行之后执行
        def tearDown(self):
            print('test-->tearDown')
        def test_01(self):
            print("这是第一个测试方法")
        def test_02(self):
            print("这是第二个测试方法")
    
    if __name__ == '__main__':
        unittest.main()
    

      

    输出结果如下

     E:workspace_pythonpythondemon>python test_method.py
    类执行之前的方法
    test-->setup
    这是第一个测试方法
    test-->tearDown
    .test-->setup
    这是第二个测试方法
    test-->tearDown
    .类执行之后的方法
    

      

    2、单元测试结合request的使用

    创建base,文件结构如下

     创建空文件  __init__.py

    demon6_http.py

    import requests, json
    
    class RunHttp:
    
        # 构造方法
        def __init__(self, url, method, data=None):
            self.result = self.send_http(url, method, data)
            # print(self.result)
        def __init__(self):
             print('--构造函数---------------')
    
        def send_get(self,url, data):
            res = requests.get(url, data)
            return res.json()
    
        def send_post(self,url, data):
            res = requests.post(url, data)
            return res.json()
    
    
        def send_http(self,url, method,data=None):
            print("method=" + method)
            if 'GET' == method:
                return self.send_get(url, data)
            else:
                return self.send_post(url, data)
    
    if __name__ == '__main__':
    
        url="https://www.fastmock.site/mock/80a256fd71635691b5e37ef11ba0baca/user/logon"
        data={
            "username": "zhangsan",
            "password": "123456"
        }
        run = RunHttp(url, 'POST', data)
        print(run.result)
    

      

    test_method_requests.py 文件

    #coding:utf-8
    import unittest
    # 导入RunHttp类
    from demon6_http import RunHttp
    class TestMethod(unittest.TestCase):
    
        # 每次方法执行之前执行
        def setUp(self):
            self.run = RunHttp()
    
        def test_01(self):
            url="https://www.fastmock.site/mock/80a256fd71635691b5e37ef11ba0baca/user/logon"
            data={
                "username": "zhangsan",
                "password": "123456"
            }
    
            res = self.run.send_http(url,"POST", data)
            print(res)
            self.assertEqual(res['code'],'0000',"测试失败")
            # 全局变量
            globals()["userid"] = '100099';
    
    
        def test_02(self):
            print("全局变量userid=" + userid)
            url="https://www.fastmock.site/mock/80a256fd71635691b5e37ef11ba0baca/user/logon"
            res = self.run.send_http(url,"GET", None)
            print(res)
            self.assertEqual(res['code'],'0002',"测试失败")
    
        # 不执行这个测试用例
        @unittest.skip('test_03')
        def test_03(self):
            print("这是第三个Test用例")
    
        def test_04(self):
            print("这是第四个Test用例")
    
        def test_05(self):
            print("这是第五个Test用例")
    
    
    if __name__ == '__main__':
        # 运行所有的测试方法
        # unittest.main()
    
        # 控制测试方法,和执行顺序
        suite = unittest.TestSuite()
        suite.addTest(TestMethod('test_05'))
        suite.addTest(TestMethod('test_04'))
        unittest.TextTestRunner().run(suite);
    

      

    作者:Work Hard Work Smart
    出处:http://www.cnblogs.com/linlf03/
    欢迎任何形式的转载,未经作者同意,请保留此段声明!

  • 相关阅读:
    参数方法HttpServletRequest之getParameter
    nullnull单例的实现方式之GCD方法
    阻带窗函数[数字信号处理]使用窗函数设计FIR滤波器
    nullnullhdu4450Draw Something
    第三方设置XML解析:第三方库GDataXMLNode的使用
    class左边nbu 2414 Please help the poor donkey!
    数据可视化可视化营养含量
    速度坐标hdu4445Crazy Tank
    singletonclassDesign Patterns: Singleton Basics 设计模式:单例基础
    控制台权限MMC不能打开文件 SQL Server Enterprise Manager.MSC 或权限不够 (解决方法 )
  • 原文地址:https://www.cnblogs.com/linlf03/p/14902892.html
Copyright © 2011-2022 走看看