十二、unittest的使用及断言

本文介绍了Python单元测试框架unittest的使用,包括创建测试用例类、定义测试方法、执行测试用例和断言操作。示例中展示了如何编写测试函数、设置前置和后置操作,以及使用各种断言方法来验证测试结果。此外,还提到了测试夹具如setUp和tearDown在用例级别的应用。
摘要由CSDN通过智能技术生成

unittest的使用:

1、定义一个测试用例类,必须继承unittest模块中的TestCase

2、测试用例类中,一个test开头的方法就是一条测试用例

3、将测试用例执行的代码逻辑写到对应的方法中

第一步:准备用例数据

第二步:调用被测的功能函数(发送请求调用接口),获取实际结果

第三部:断言

自定义一个功能函数:

```python
def login_dxc(username=None, password=None):
    """
    登录方法
    :param username: 账号
    :param password: 密码
    :return: dict
    """
    if username != None and password != None:
        if username == "duanxc" and password == 123456:
            return {"code": 0, "msg": "登录成功"}
        else:
            return {"code": 1, "msg": "账号和密码不正确"}
    else:
        return {"code": 1, "msg": "所有参数不能为空"}
```

创建测试类:

```python
import unittest
from login import login_dxc


class Testlogin(unittest.TestCase):

    de f test_login(self):
        # 第一步:准备用例数据
        params = {"username": "duanxc", "password": 123456}
        expected = {'code': 0, 'msg': '登录成功'}
        # 第二步:调用被测的功能函数(发送请求调用接口),获取实际结果
        #**对字典进行拆包
        res = login_dxc(**params)
        # 第三部:断言
        assert expected == res
```

```python
import unittest

# 一、创建测试套件,加载测试用例到套件
# 1、# 创建一个测试套件
# suite = unittest.TestSuite()
# 2、# 创建一个用例加载器
# loader = unittest.TestLoader()
# 3、#加载测试用例到测试套件
# suite.addTest(loader.discover(r"E:\Study\testcases"))
# 简写
suite = unittest.defaultTestLoader.discover(r"E:\Study\testcases")

# 二、创建一个测试用例运行程序
runner = unittest.TextTestRunner()

#三、运行测试用例
runner.run(suite)
```

```python
import unittest
from unittestreport import TestRunner

suite = unittest.defaultTestLoader.discover(r"E:\Study\testcases")

runner = TestRunner(suite)
runner.run()
```

  fixture:测试夹具

用例级别:

1、setUp:用例级别的前置。每条测试用例执行前都会执行

2、tearDown:用例级别的后置,每条测试用例执行之后都会执行

```python
class Testlogin(unittest.TestCase):


    def setUp(self) -> None:
        print("每条测试用例执行之前的操作")

    def tearDown(self) -> None:
        print("每条测试用例执行之后的操作")

    def test_login(self):
        print("第一条测试用例")
```

测试类级别:

1、setUpClass:类级别的前置。类执行前都会执行

2、tearDownClass:类级别的后置,类执行之后都会执行

```python
import unittest


class Testlogin(unittest.TestCase):
    #注意点:声明这是一个类方法,要不然会报错
    @classmethod
    def setUpClass(cls) -> None:
        print("执行测试类之前的操作")

    @classmethod
    def tearDownClass(cls) -> None:
        print("执行测试类之后的操作")

    def setUp(self) -> None:
        print("每条测试用例执行之前的操作")

    def tearDown(self) -> None:
        print("每条测试用例执行之后的操作")

    def test_login(self):
        print("第一条测试用例")

    def test_login_user_error(self):
        print("第二条测试用例")

    def test_login_psw_error(self):
        print("第三条测试用例")


if __name__ == '__main__':
    unittest.main()
```

unittest断言:

1、assertEqual(a,b)        a==b

2、assertNotEqual(a,b)        a!=b

3、assertTrue(x)        bool(x)is True

4、assertFalse(x)        bool (x)is False

5、assertIs(a,b)        a is b

6、assertIsNot(a,b)        a is not b

7、assertIn(a,b)        a in b

8、assertNotIn(a,b)        a not in b

断言示例:

```python
def test_login_user_error(self):
    print("第二条测试用例")
    # 预期结果
    a={"登录成功"}
    # 实际结果
    b={'登录成功'}
    #a等于b
    self.assertEqual(a,b)

def test_login_psw_error(self):
    print("第三条测试用例")
    # 预期结果
    a = "11,22,33"
    # 实际结果
    b = "11,22,33,44,55"
    #b包含a
    self.assertIn(a,b)
```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值