一、单元测试的定义:
1:什么是单元测试?
还记不记得我们软件测试学习的时候,按照定义:单元测试就是对单个模块或者是单个类或者单个函数进行测试,一般是开发做的,按照阶段来分,一般就是单元测试、集成测试(接口测试)、系统测试(系统之间的联调测试)、验收测试
2:为什么要做单元测试?
1)单元测试之后,才是集成测试,单个单个的功能模块测试通过之后,才能把单个功能模块集成起来做集成测试,为了从底层发现bug,减少合成后出现的问题。
2)越早发现bug越好,这样可以早点发现问题,不然问题累计到后面,如果做错了就要推倒重来-对于时间和经费来说,是非常浪费的!
3)对于我们测试来说:我们就单元测试是为了执行测试用例!校验程序代码之间的运行逻辑
说白了也就是一句话:单元测试是测代码,相当于白盒测试,检查代码的逻辑以及功能有没有出问题!!!
比如:看接下来的一个例子,测某一个账号密码登录的功能,检查代码有没有问题
def login_check(username=None, password=None): """ 登录校验的函数 :param username: 账号 :param password: 密码 :return: dict type """ if username != None and password != None: if username == ‘python31‘ and password == ‘lemonban‘: return {"code": 0, "msg": "登录成功"} else: return {"code": 1, "msg": "账号或密码不正确"} else: return {"code": 1, "msg": "所有的参数不能为空"}
这段代码是开发人员写的,我们作为测试人员仅仅是去测这些代码有没有问题,怎么去测呢?需要我们自己亲自手写代码
像这个简单的登录案例,一般有这几种情况:
1,账号密码均正确
2,账号正确,密码错误
3,账号错误,密码正确
4,账号为空
5,密码为空
if __name__ == ‘__main__‘: # ------------------测试函数正常登录----------------------------------- # 第一步:准备用例数据 expected = {"code": 0, "msg": "登录成功"} data = ("python31", "lemonban") # 第二步:传入参数,获取实际结果 res = login_check(*data) # 第三步:判断用例是否通过(比对预期结果和实际结果) if res == expected: print("用例执行通过!") else: print("用例执行不通过!!!") # ---------------------------测试函数传入错误密码的情况-------------------------------------------- # 第一步:准备用例数据 expected = {"code": 0, "msg": "登录成功"} data = ("python31", "lemonban123") # 第二步:传入参数,获取实际结果 res = login_check(*data) # 第三步:判断用例是否通过(比对预期结果和实际结果) if res == expected: print("用例执行通过!") else: print("用例执行不通过!!!")
# 这些代码是散的,一般不会这样去写,所以我们后面会有更完整的模块代码
原文:https://www.cnblogs.com/xj-excellent/p/13443295.html