Python单元测试介绍及单元测试理解,单元测试的自动生成(对函数进行测试)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)

一、单元测试的定义

单元测试是由开发人员编写的,用来检测特定条件写代码的正确性
单元测试中使用assert(断言)来判断结果是否与预期值相等

二、实例理解

2.1可通过的测试

一个模拟的登录
def Login(uername,password):
    if uername == "Jay" and password == "admin":
        return 0
    else:
        return 1
测试用例
# 测试用例
# Login("Jay","admin")  用户名和密码全部正确
# Login("陈奇","admin")  用户名错误,密码正确
# Login("Jay","123456") 用户名正确,密码错误
# Login("廖燕均","123")  用户名和密码全部错误
# Login("","")          用户名和密码全部为空
测试代码
import unittest
from login import *


# 测试用例
# Login("Jay","admin")
# Login("陈奇","admin")
# Login("Jay","123456")
# Login("廖燕均","123")
# Login("","")


class MyTestone(unittest.TestCase):
    def test_case1(self):
        result = Login("Jay", "admin")
        self.assertEqual(0, result)

    def test_case2(self):
        result = Login("陈奇", "admin")
        self.assertEqual(1, result)

    def test_case3(self):
        result = Login("Jay", "123456")
        self.assertEqual(1, result)

    def test_case4(self):
        result = Login("廖燕均", "123")
        self.assertEqual(1, result)

    def test_case5(self):
        result = Login("", "")
        self.assertEqual(1, result)


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

运行结果

1:5次测试(因为我们运行了5个测试用例)
2:执行时间
3:执行结果(通过)
在这里插入图片描述

2.2不可通过的测试

一个模拟的登录

注意:在代码逻辑错误的时候

def Login(uername,password):
    if uername == "Jay" or password == "admin":
        return 0
    else:
        return 1
测试用例
# 测试用例
# Login("Jay","admin")  用户名和密码全部正确
# Login("陈奇","admin")  用户名错误,密码正确
# Login("Jay","123456") 用户名正确,密码错误
# Login("廖燕均","123")  用户名和密码全部错误
# Login("","")          用户名和密码全部为空
测试代码
import unittest
from login import *


# 测试用例
# Login("Jay","admin")
# Login("陈奇","admin")
# Login("Jay","123456")
# Login("廖燕均","123")
# Login("","")


class MyTestone(unittest.TestCase):
    def test_case1(self):
        result = Login("Jay", "admin")
        self.assertEqual(0, result)

    def test_case2(self):
        result = Login("陈奇", "admin")
        self.assertEqual(1, result)

    def test_case3(self):
        result = Login("Jay", "123456")
        self.assertEqual(1, result)

    def test_case4(self):
        result = Login("廖燕均", "123")
        self.assertEqual(1, result)

    def test_case5(self):
        result = Login("", "")
        self.assertEqual(1, result)


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

运行结果

运行结果(两个测试不通过)
在这里插入图片描述
原因:
在这里插入图片描述
这两个由于我们的逻辑为**“or”**,所以有一个是对的,就为正确,而测试结果与我们的预期结果错误相悖,因此测试这两个的时候不通过

三、单元测试的自动生成

很多人都是手动创建测试,但pycharm可自动创建,步骤:
选中项目—>新建(new)—>Pytjon file
在这里插入图片描述
选中第二个
在这里插入图片描述
随后就会自动生成
在这里插入图片描述
如有不足之处欢迎指出嘿嘿

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值