Python单元测试介绍及单元测试理解,单元测试的自动生成

一、单元测试的定义

单元测试是由开发人员编写的,用来检测特定条件写代码的正确性
单元测试中使用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
在这里插入图片描述
选中第二个
在这里插入图片描述
随后就会自动生成
在这里插入图片描述
如有不足之处欢迎指出嘿嘿

猜你喜欢

转载自blog.csdn.net/hanhanwanghaha/article/details/107487037