1、unittest 单元测试框架
TestCase:一个testcase的实例就是一个测试用例
TestSuite:多个测试用例集合在一起。TestLoader:是用来加载TestCase到TestSuite中的
TextTestRunner:用来执行测试用例的
fixture:测试用例环境的搭建和销毁。
2、unittest的注意事项
1)模块名称以test_开头
2)类名:Test...
3)测试用例的方法名称:test_..
4)TestLogin(unittest.TestCase)
附带代码:
def login(username=None, password=None):
"""登录"""
if username != None and password != None:
if username == "xinhua" and password == "123456":
return {"mgs": "登录成功"}
else:
return {"mgs": "用户名或密码错误"}
else:
return {"mgs": "用户名或密码为空"}
import unittest
class TestLogin(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("一个测试类只执行一次的前置")
@classmethod
def tearDownClass(cls):
print("一个测试类只执行一次的后置")
def setUp(self):
"""前置 一个测试方法执行一次"""
print("连接数据库")
def tearDown(self):
"""后置"""
print("断开数据库")
def test_login_success(self):
"""登录成功测试用例"""
username = "xinhua"
password = "1256"
expected = {"mgs": "登录成功"}
# 调用被测单元
actual = login(username, password)
# 判断预期结果和实际结果是否存在某种关系 断言 assert
self.assertTrue(expected == actual)
def test_login_error(self):
username = "xinhua"
password = "123456"
expected = {"mgs": "登录成功"}
actual = login(username, password)
self.assertTrue(expected == actual)
作业:
unittest作业 欢迎大家来到自动化测试。这是我们进入自动化领域的第一个作业,准备好了吗? 1,根据上课写的 login 函数,设计测试用例,并写出测试用例方法。 2, 通过 unittest 执行。 提示(逻辑基本是一致的,只是数据会发生变化)
上期答案:
# !/usr/bin/python3 # Author: wuyi # --*--coding: utf-8 --*-- # @Time: 2020/12/4 10:21 # @file: t_14_类的继承.py """ 类和对象3 1, 详细总结类和对象知识点,包括: 类的定义:类是指具有某一种特征的群体 对象的初始化: 表示方法:def __init__(self) 类属性:类都具有的特征,类里面的实例也都具有。 实例属性:实例具有的特征,不一定类都具有。 实例方法:类里的函数 类方法:类里的函数,@classmethod 静态方法:类里的函数,@staticmethod 继承:子类继承父类的方法,父类有的子类都有 重写:子类和父类有同样的方法,但不同 super 函数:子类和父类有同样的方法,子类有自己的模式,也继承了父类的模式,就用super函数 2, 定义一个类 Dog, 包含 2 个属性:名字和年龄。 定义一个方法 eat 吃东西。 定义一个类 TeddyDog, 继承 Dog 类, Teddy 在吃东西的时候还会望着你, 定义方法 watch_you. 定义一个类 BabyTeddyDog, 继承 TeddyDog, BabyTeddy 吃东西不仅会望着你,还会四处转悠, 定义方法 go_around """ class Dog: def __init__(self, name, age): self.name = name self.age = age def eat(self): print("{}正在吃东西".format(self.name)) class TeddyDog(Dog): def __init__(self, name): self.name = name def watch_you(self, to): self.eat() print("正在望着{}".format(to)) class BabyTeddyDog(TeddyDog): def go_around(self, to): self.watch_you(to) print("四处溜达")