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/
欢迎任何形式的转载,未经作者同意,请保留此段声明!

原文地址:https://www.cnblogs.com/linlf03/p/14902892.html