关键词:
# 单元测试,代码测试代码针对函数、类,检测他的某个方面是否有问题的测试
开发
测试用例是一组单元测试,每个单元测试是一起核实函数和类在各种情况下的行为都符合要求
为什么要做单元测试?
1、单元测试 ->集成测试 ->
2、从底层发现bug,越早发现bug越好解决避免后期重构,节约时间、经费
全覆盖特别困难,只针对重要的行为编写测试
tdd
为了做单元测试,unittest框架,单元测试框架
1、创建一个login.py
def login_check(username,password):
"""
:param username:账号
:param password:密码
:return:
"""
if 6 <= len(password) <= 18:
if username == ‘python34‘ and password == ‘lemonban‘:
return "code": 0,"msg":"登陆成功"
else:
return "code": 1,"msg":"账号或密码不正确"
else:
return "code":1,"msg":"密码长度在6-18位之间"
# __name__ 是模块的特殊变量
# 当直接之前当前模块的时候__name__=‘__main__‘
# 当被其他模块导入的时候__name__ = 模块名
# pass占位符,什么都不是,表示跳过
if __name__ == ‘__main__‘:
pass
2、创建一个test_case.py
导入unittese,导入被检测函数或者类
一般系统模块放在最上面
第三方模块放在系统模块的下面
自己写的模块放在最下面
import unittest
from login import login_check
# 创建测试类,继承unittest.TeseCase类,测试用例
class Testlog(unittest.TestCase):
"""
测试登录功能
"""
# 3、如果有初始(前置)条件和结束(后置)条件,重写脚手架(fixture)方法
# 4、定义单元测试函数,函数名要以test开头
def test_log_ok(self):
"""
账号密码正确
:return:
"""
# 1、测试数据
test_data = "username": "python34", "password": "lemonban"
# 期望数据
expect_data = "code": 0, "msg": "登陆成功"
# 测试步骤
# 执行函数-,**解包,键相同,相当于把test_data中的两个值传给了login_check
res = login_check(**test_data)
# 3、断言(判断)assert下的Equal是判断是否相同
self.assertEqual(expect_data, res)
# 如果不相等会抛出assertError,断言错误
print(‘第一条用例‘)
def test_log_password_error(self):
"""
账号正确,密码错误
:return:
"""
# 1、测试数据
test_data = "username": "python342", "password": "lemonban"
# 期望结果
expected = "code": 1, "msg": "账号或密码不正确"
# 2、测试步骤
res = login_check(**test_data)
# 3、断言
self.assertEqual(expected, res)
print("第二条用例")
def test_password_ok_pass_error(self):
test_date = "username": "python34", "password": "lemonban1"
expected = "code": 1, "msg": "账号或密码不正确"
res = login_check(**test_date)
self.assertEqual(res,expected)
print(‘第三条用例‘)
def test_password_lenth_little(self):
test_data = "username": "python34", "password": "lem"
expected = "code": 1, "msg": "密码长度在6-18位之间"
res = login_check(**test_data)
self.assertEqual(expected,res)
print(‘第四条用例‘)
def test_password_lenth_blg(self):
test_data = "username": "python34", "password": "lemonbanaaaaaaaaaaaaaaa1"
expected = "code":1,"msg":"密码长度在6-18位之间"
res = login_check(**test_data)
self.assertEqual(expected,res)
print(‘第五条用例‘)
# 5、调用unittese.main()来执行测试用例
if __name__ == ‘__main__‘:
a = 1
# 会自动收集TestCase类里的单元测试函数
unittest.main()
实验单元测试(代码片段)
实验五、单元测试一、实验目的1、掌握单元测试的方法;2、学习XUnit测试原理及框架;3、学习使用测试框架进行单元测试的方法和过程。 二、实验内容与要求1、了解单元测试的原理与框架1.1单元测试原理 单元测试(uni... 查看详情
junit单元测试(代码片段)
Junit单元测试测试分类黑盒测试:不需要写代码,给输出值,看程序是否能够输出期望的值。白盒测试:需要写代码的。关注程序具体的执行流程。junit使用:白盒测试步骤:定义一个测试类(测试用例)建议:测试类名:被测... 查看详情
编写单元测试,测试你的代码(代码片段)
编写单元测试,测试你的代码编写单元测试三步骤:1.准备数据:db、mock第三方服务、MQ、redis、dubbo2.调用测试方法3.验证期望结果依赖junit包<dependency> <groupId>org.jmockit</groupId> <artifactId>jmockit</artifactId> 查看详情
编写单元测试,测试你的代码(代码片段)
编写单元测试,测试你的代码编写单元测试三步骤:1.准备数据:db、mock第三方服务、MQ、redis、dubbo2.调用测试方法3.验证期望结果依赖junit包<dependency> <groupId>org.jmockit</groupId> <artifactId>jmockit</artifactId> 查看详情
单元测试(代码片段)
使用单元测试的目的:检验实际结果与预期结果之间的差别.实际上就是通过assert来断言结果importunittestclassTestClass(unittest.TestCase):#该方法会首先执行,相当于做测试前的准备工作defsetUp(self):pass#该方法会在测试代码执行完后执行,... 查看详情
从零开始写博客系统——测试我们的代码(单元测试)(代码片段)
...何测试我们的代码。测试的类别我们的后台代码可以使用单元测试和接口测试来覆盖。所谓单元测试,就是直接测试我们的代码逻辑,而不需要启动服务。而接口测试,则是把我们的服务启动后,调用接口检查接口的返回值是否... 查看详情
从零开始写博客系统——测试我们的代码(单元测试)(代码片段)
...何测试我们的代码。测试的类别我们的后台代码可以使用单元测试和接口测试来覆盖。所谓单元测试,就是直接测试我们的代码逻辑,而不需要启动服务。而接口测试,则是把我们的服务启动后,调用接口检查接口的返回值是否... 查看详情
unittest单元测试框架(代码片段)
unittestunittest单元测试框架,主要由四部分组成:测试固件、测试用例、测试套件、测试执行器 【测试固件】有两部分,执行测试前的准备部分setUp(),测试执行完后的清扫部分tearDown() 【测试用例】中,... 查看详情
实验五单元测试(代码片段)
实验五 单元测试一、实验目的1)掌握单元测试的方法2)学习XUnit测试原理及框架;3)掌握使用测试框架进行单元测试的方法和过程。二、实验内容与要求1、了解单元测试的原理与框架 1.1单元测试原理 单元测试(unitt... 查看详情
ios单元测试的那些事儿(代码片段)
iOS单元测试的那些事儿作为客户端开发,很多时候我们过多的关注于功能的测试,而忽略标准的单元测试。其实,单元测试是保障项目稳定性的最有效且成本最低的测试方式。越偏向底层服务的代码,越需要使用单元测试来对可... 查看详情
实验五单元测试(代码片段)
一、实验目的1)掌握单元测试的方法2)学习XUnit测试原理及框架;3)掌握使用测试框架进行单元测试的方法和过程。 二、实验内容与要求1、了解单元测试的原理与框架 1.1单元测试原理 单元测... 查看详情