欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-10-07 21:21:29
目录一、单元测试的定义二、实例理解2.1可通过的测试一个模拟的登录测试用例测试代码运行结果2.2不可通过的测试一个模拟的登录测试用例测试代码运行结果三、单元测试的自动生成一、单元测试的定义单元测试是由开发人员编写的,用来检测特定条件写代码的正确性单元测试中使用assert(断言)来判断结果是否与预期值相等二、实例理解2.1可通过的测试一个模拟的登录def Login(uername,password): if uername == "Jay" and password == "admi...

一、单元测试的定义

单元测试是由开发人员编写的,用来检测特定条件写代码的正确性
单元测试中使用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:执行结果(通过)
Python单元测试介绍及单元测试理解,单元测试的自动生成

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()

运行结果

运行结果(两个测试不通过)
Python单元测试介绍及单元测试理解,单元测试的自动生成
原因:
Python单元测试介绍及单元测试理解,单元测试的自动生成
这两个由于我们的逻辑为**“or”**,所以有一个是对的,就为正确,而测试结果与我们的预期结果错误相悖,因此测试这两个的时候不通过

三、单元测试的自动生成

很多人都是手动创建测试,但pycharm可自动创建,步骤:
选中项目—>新建(new)—>Pytjon file
Python单元测试介绍及单元测试理解,单元测试的自动生成
选中第二个
Python单元测试介绍及单元测试理解,单元测试的自动生成
随后就会自动生成
Python单元测试介绍及单元测试理解,单元测试的自动生成
如有不足之处欢迎指出嘿嘿

本文地址:https://blog.csdn.net/hanhanwanghaha/article/details/107487037