目录

  • 一、单元测试的定义
  • 二、实例理解
    • 2.1可通过的测试
      • 一个模拟的登录
      • 测试用例
      • 测试代码
      • 运行结果
    • 2.2不可通过的测试
      • 一个模拟的登录
      • 测试用例
      • 测试代码
      • 运行结果
  • 三、单元测试的自动生成

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

一、单元测试的定义

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

二、实例理解

2.1可通过的测试

一个模拟的登录

def Login(uername,password):if uername == "Jay" and password == "admin":return 0else: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 0else: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宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)

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

  1. FOC:【3】精品必看!利用Python实现System Verilog多字节UART串口有限状态机自动生成脚本

    碎碎念: 向关注的朋友们道个歉,不好意思这一期鸽了这么久.( ̄(工) ̄) 这是一个懒狗不想写1000行的状态机,所以写了1000行的脚本的故事. 虽然本期内容与FOC的直接相关度并不大,由于是在整个项 ...

  2. 【原创佳作】用Python自制了一张网页,一键自动生成探索性数据分析报告

    今天小编带领大家用Python自制一个自动生成探索性数据分析报告这样的一个工具,大家只需要在浏览器中输入url便可以轻松的访问,如下所示 第一步 首先我们导入所要用到的模块,设置网页的标题.工具栏以及 ...

  3. python的api库_python 利用toapi库自动生成api

    在学习做接口测试自动化的时候,我们往往会自己动手写一些简单的API,比如写一个简单的TODO API之类. 不过自己写API的时候经常需要造一些假数据,以及处理分页逻辑,开始的时候还觉得比较有意思,但 ...

  4. Python pickle 介绍及使用理解

    最近用到 pickle , 查询了网络博客的资料,整理了下 pickle 的作用,和使用场景, 一,pickle的说明介绍 一种数据的持久化保存方式 1.1 从序列化方向理解pickle 一般序列化流 ...

  5. Python爬虫有用的库:fake_useragent,自动生成请求头

    文章目录 前言 fake_useragent 其它错误 参考文章 前言 练习爬虫的很多小伙伴,在进行request请求时,大部分情况下都要添加一个请求头,而最常见的就是添加user-agent,帮助爬 ...

  6. python 随机名言_如何用简易代码自动生成经典语录

    "不要空想不可能的事情" "增加自己的幸福感" "我们最终将创造地面,并呵护它" "保持希望并学会放弃奇迹" 上面所有引 ...

  7. python制作会动的表情包_Python自动生成表情包,python在手,从此斗图无敌手

    作为一个数据分析师,应该信奉一句话----"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态----表情包!!!! 表情包不仅仅是一种符号,更是一种文化:是促 ...

  8. python制作会动的表情包_Python自动生成表情包

    分享一篇好玩的文章,原文链接:Python自动生产表情包. 作为一个数据分析师,应该信奉一句话----"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态--- ...

  9. python视频处理字幕_Python-autosub为任意视频自动生成字幕文件的命令行工具-其它代码类资源...

    关闭 致敬爱的网友及本站会员的一封信 敬爱的小伙伴们大家好! 作为码农集市(coder100)平台的站长,我不得已采取这样的方式来和各位来到我们平台逛逛的小伙们做一次推心置腹的畅谈.真诚的希望您能够抽 ...

  10. python制作表格的语句_python根据Excel自动生成创建表sql语句

    1.Excel格式截图 2.配置文件脚本 # coding:utf-8 # 表英文名 table_name = '表英文名' # 表中文名 table_comments = '表中文名' # Exce ...

最新文章

  1. nginx如何解决超长请求串
  2. 解读:数据科学、机器学习和AI的区别
  3. linux系统编程快速定位头文件的技巧之强大的grep命令
  4. OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔总结
  5. vim 多行注释消除注释,多行删除
  6. jQuery easyUI--选项卡右键菜单
  7. 何兆武:西南联大的数学家
  8. 专访香侬科技:致力于让世界听到中文NLP的声音
  9. 谷歌巴基斯坦_巴基斯坦的免费文化活动
  10. 二套“非普通住宅”是否认贷不认房 各地口径不一
  11. 避免C++求余数出现负数解决办法
  12. ubuntu下安装matlab及配置vot-toolkit
  13. 解放生产力「GitHub 热点速览 v.21.51」
  14. sv信道模型是什么_怎样理解metis信道模型?
  15. 新媒体运营必备的实用工具
  16. 【A阶段A+2】-vinc- =-vict- 胜,征服,扩展的单词学会了?
  17. excel单元格内容拆分_Excel | 单元格内容换行方法
  18. 寒假怎么过?经典计算机教材助你弯道超车
  19. 汽车之外 这届2018CES盛会电视和语音助理也很亮眼 | CES
  20. openstack冷迁移/Resize源码分析(二)

热门文章

  1. vb6 datagrid表格垂直居中_老板不喜欢看你的Excel表格,学完这些美化技巧,早日升职加薪...
  2. python打包成exe_Python打包成exe时,再犯这几个错误就说不过去了
  3. react 组件传值
  4. js 对象和构造函数
  5. linux 监控mysql脚本_Linux系统MySQL主从同步监控shell脚本
  6. Class.forName()、Class.class、getClass() 区别
  7. matlab如何导入多文本数据,将文本文件中的混合数据导入表
  8. 计算机拆卸组装过程,如何拆卸并重新组装笔记本电脑
  9. 计算机桌面程序名,深度技术win7旗舰版电脑桌面图标只显示名称了怎么办
  10. (递归3)最大公约数