Python模块,包,UnitTest笔记

导入模块

import 模块名

#使用模块

模块名.工具名

# 举例
import random
import json
random.randint(a, b)
json.load()
json.dump()
from 模块名 import ⼯具名
# 使⽤
⼯具名 # 如果是函数和类需要加括号
# 举例
from random import randint
from json import load, dump
randint(a, b)
load()
dump()

快捷键:alt + Enter

对于导⼊的模块和⼯具可以使⽤ as 关键字给其起别名
注意: 如果起别名,原来的名字就不能⽤了, 只能使⽤别名

__name__ 的作用

1. 每个代码⽂件都是⼀个模块
2. 在导⼊模块的时候, 会执⾏模块中的代码(三种⽅法都会)
3. __name__ 变量
 3.1 __name__ 变量 是 python 解释器⾃动维护的变量
 3.2 __name__ 变量,如果代码是直接运⾏, 值是 "__main__"
 3.3 __name__ 变量, 如果代码是被导⼊执⾏, 值是 模块名(即
代码⽂件名)
在代码⽂件中, 在被导⼊时不想被执⾏的代码,可以写在 if
__name__ == "__main__": 代码的缩进中
def add(a,b):
    return a+b
if __name__ == '__main__':
    print('在代码中调用函数')
    print(add(1,2))
    print(add(10,20))
    print(__name__)
else:
    pass
import tools

print(tools.add(100, 200))

代码练习

1. 定义⼀个模块 tools.py
2. 在模块中定义⼀个函数, func, 输出 '我是 tools 模块中
的 funn 函数'
3. 在模块中定义⼀个类, Dog, 具有属性 name, age, ⽅法
play, 输出 'xx 在快乐的玩耍'
4. 新建⼀个代码⽂件, 调⽤ tools 模块中的 func 函数 并创
建⼀个 Dog 类的对象, 调⽤ play ⽅法
def func():
    print('我是tools模块中的func函数')
class Dog:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def play(self):
        print(f"{self.name}在快乐玩耍")
import tools
tools.func()
dog = tools.Dog('小黑',2)
dog.play()

(package)

在 Python 中, 包 是⼀个⽬录, 只不过在这个⽬录存在⼀个⽂
件 __init__.py(可以是空的)

UnitTest框架

作用:

1. 能够组织多个⽤例去执⾏
2. 提供丰富的断⾔⽅法(让程序代码代替⼈⼯⾃动的判断预期
结果和实际结果是否相符)
3. 能够⽣成测试报告

TestCase

TestCase(测试⽤例): 每个 TestCase(测试⽤例) 都是⼀个代码⽂
件, 在这个代码⽂件中来书写真正的⽤例代码
1. 导包 (unittest)
2. ⾃定义测试类
3. 在测试类中书写测试⽅法
4. 执⾏⽤例
"""
代码的⽬的: 学习 TestCase(测试⽤例)模块的书写⽅法
"""
import unittest


class TestDemo(unittest.TestCase):
    def test_method1(self):
        print('测试方法1')

    def test_method2(self):
        print('测试方法2')

TestSuite

TestSuite(测试套件):⽤来管理组装(打包)多个TestCase(测试⽤例) 的

TestRunner

TestRunner(测试执⾏,测试运⾏):⽤来执⾏TestSuite(测试套件)的

TestSuite & TestRunner

"""
学习 TestSuite 和 TestRunner 的使⽤
"""
# 1. 导包(unittest)
import unittest

from Test.Day09.测试用例书写.test01_TestCase1 import TestDemo1
from Test.Day09.测试用例书写.test01_TestCase2 import TestDemo2
# 2. 实例化(创建对象)套件对象
# ⽅式⼀, 套件对象.addTest(测试类名('⽅法名'))
suite = unittest.TestSuite()

suite.addTest(TestDemo1('test_method1'))
suite.addTest(TestDemo1('test_method2'))
suite.addTest(TestDemo2('test_method1'))
suite.addTest(TestDemo2('test_method2'))
# 4. 实例化运⾏对象
runner = unittest.TextTestRunner()
# 5. 使⽤运⾏对象去执⾏套件对象
runner.run(suite)
"""
学习 TestSuite 和 TestRunner 的使⽤
"""
# 1. 导包(unittest)
import unittest

from Test.Day09.测试用例书写.test01_TestCase1 import TestDemo1
from Test.Day09.测试用例书写.test01_TestCase2 import TestDemo2
# 2. 实例化(创建对象)套件对象
suite = unittest.TestSuite()
# ⽅式⼆ 将⼀个测试类中的所有⽅法进⾏添加
# 套件对象.addTest(unittest.makeSuite(测试类名))
suite.addTest(unittest.makeSuite(TestDemo1))
suite.addTest(unittest.makeSuite(TestDemo2))
# 4. 实例化运⾏对象
runner = unittest.TextTestRunner()
# 5. 使⽤运⾏对象去执⾏套件对象
runner.run(suite)

TestLoader

TestLoader(测试加载):功能是对 TestSuite(测试套件) 功能的补充, 管理组装(打包)多个TestCase(测试⽤例) 的
如果 TestCase 的代码文件有很多, (10 20, 30 )
1. 导包
2. 实例化测试加载对象并添加用例 ---> 得到的是 suite 对象
3. 实例化 运行对象
4. 运行对象执行套件对象
# unittest.TestLoader().discover(' 用例所在的路径 ', ' 用例的代码文件名 ')

Fixture

Fixture(测试夹具):书写在 TestCase(测试⽤例) 代码中, 是⼀个代码结构, 可以在每个⽅法
执⾏前后都会执⾏的内容

方法级别

在每个测试方法(用例代码) 执行前后都会自动调用的结构

类级别

在每个测试类中所有方法执行前后 都会自动调用的结构(在整个类中 执行之前执行之后个一次)

模块级别[了解]

在每个代码文件执行前后执行的代码结构
来源:黑马软件测试Python
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值