目录
- 一、单元测试的定义
- 二、实例理解
- 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宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)