Flask入门教程
容。在实际的项目开发中, 你应该在开发每一个功能后立刻编写相应的测试,确保测试通过后再开发下一个功 能。 单元测试 单元测试指对程序中的函数等独立单元编写的测试,它是自动化测试最主要的形 式。这一章我们将会使用 Python 标准库中的测试框架 unittest 来编写单元测试, 首先通过一个简单的例子来了解一些基本概念。假设我们编写了下面这个函数: def sayhello(to=None): sayhello(to=None): if to: return 'Hello, %s!' % to return 'Hello!' 下面是我们为这个函数编写的单元测试: 第 9 章:测试 89 import unittest from module_foo import sayhello class SayHelloTestCase(unittest.TestCase): 访问 Coverage.py 文档(https://coverage.readthedocs.io)或执行 coverage help 命令来查看更多用法。 使用标准库中的 unittest 编写单元测试并不是唯一选择,你也可以使用第三方 测试框架,比如非常流行的 pytest。 如果你是《Flask Web 开发实战》的读者,第 12 章详细介绍了测试 Flask 程 序的相关知识,包括使用0 码力 | 127 页 | 7.62 MB | 1 年前3Python 标准库参考指南 3.8.20
测试交互式的 Python 示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1463 26.4 unittest --- 单元测试框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1485 26.5 unittest 以小写字母表示的编码名称,并返 回一个CodecInfo 对象。在搜索函数无法找到给定编码的情况下,它应当返回 None。 注解: 搜索函数的注册目前是不可逆的,这在某些情况下可能导致问题,例如单元测试或模块重载等。 虽然内置的open() 和相关联的io 模块是操作已编码文本文件的推荐方式,但本模块也提供了额外的工具 函数和类,允许在操作二进制文件时使用更多种类的编解码器: 7.2. codecs print("Nothing.") ... >>> fun.register(type(None), nothing) register() 属性将返回启用了装饰器堆栈、封存的未装饰函数,并会为每个变量单独创建单元测试: >>> @fun.register(float) ... @fun.register(Decimal) ... def fun_num(arg, verbose=False): ... if0 码力 | 2052 页 | 9.74 MB | 9 月前3Python 标准库参考指南 3.8.20
测试交互式的 Python 示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1366 26.4 unittest --- 单元测试框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1387 26.5 unittest.mock 以小写字母表示的编码名称,并 返回一个CodecInfo 对象。在搜索函数无法找到给定编码的情况下,它应当返回 None。 注解: 搜索函数的注册目前是不可逆的,这在某些情况下可能导致问题,例如单元测试或模块重载 等。 虽然内置的open() 和相关联的io 模块是操作已编码文本文件的推荐方式,但本模块也提供了额外的工 具函数和类,允许在操作二进制文件时使用更多种类的编解码器: codecs 子类,它会被记录下来并被忽略掉。如果可调用对象引 发一个BaseException 子类,这个行为没有定义。 如果 future 对象已经完成或已取消,fn 会被立即调用。 下面这些Future 方法用于单元测试和Executor 实现。 set_running_or_notify_cancel() 这个方法只可以在执行关联Future 工作之前由Executor 实现调用或由单测试调 用。 如果这个方法返回0 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.8.20
测试交互式的 Python 示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1366 26.4 unittest --- 单元测试框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1387 26.5 unittest.mock 以小写字母表示的编码名称,并 返回一个CodecInfo 对象。在搜索函数无法找到给定编码的情况下,它应当返回 None。 注解: 搜索函数的注册目前是不可逆的,这在某些情况下可能导致问题,例如单元测试或模块重载 等。 虽然内置的open() 和相关联的io 模块是操作已编码文本文件的推荐方式,但本模块也提供了额外的工 具函数和类,允许在操作二进制文件时使用更多种类的编解码器: codecs 子类,它会被记录下来并被忽略掉。如果可调用对象引 发一个BaseException 子类,这个行为没有定义。 如果 future 对象已经完成或已取消,fn 会被立即调用。 下面这些Future 方法用于单元测试和Executor 实现。 set_running_or_notify_cancel() 这个方法只可以在执行关联Future 工作之前由Executor 实现调用或由单测试调 用。 如果这个方法返回0 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.10.15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1523 26.8 unittest --- 单元测试框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1524 26.8.1 基本实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1617 26.12.1 为 test 包编写单元测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1618 26.12.2 使用命令行界面运行测试 . 子类,它会被记录下来并被忽略掉。如果可调用对象引发一 个BaseException 子类,这个行为没有定义。 如果 future 对象已经完成或已取消,fn 会被立即调用。 下面这些Future 方法用于单元测试和Executor 实现。 set_running_or_notify_cancel() 这个方法只可以在执行关联Future 工作之前由Executor 实现调用或由单测试调用。 如果此方法返回0 码力 | 2207 页 | 10.45 MB | 9 月前3Python 标准库参考指南 3.13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1589 26.5 unittest --- 单元测试框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1590 26.5.1 基本实例 . . . 回归测试包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1676 26.8.1 为 test 包编写单元测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1676 26.8.2 使用命令行界面运行测试 . . . 子类,它会被记录下来并被忽略掉。如果可调用对象引发一个BaseException 子类,这个行为没有定义。 如果 future 对象已经完成或已取消,fn 会被立即调用。 下面这些Future 方法用于单元测试和Executor 实现。 set_running_or_notify_cancel() 这个方法只可以在执行关联Future 工作之前由Executor 实现调用或由单测试调用。 如果此方法返回0 码力 | 2246 页 | 11.74 MB | 9 月前3Python 标准库参考指南 3.11.10
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1538 26.5 unittest --- 单元测试框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1539 26.5.1 基本实例 . . . 回归测试包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1631 26.9.1 为 test 包编写单元测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1632 26.9.2 使用命令行界面运行测试 . . . 子类,它会被记录下来并被忽略掉。如果可调用对象引发一 个BaseException 子类,这个行为没有定义。 如果 future 对象已经完成或已取消,fn 会被立即调用。 下面这些Future 方法用于单元测试和Executor 实现。 set_running_or_notify_cancel() 这个方法只可以在执行关联Future 工作之前由Executor 实现调用或由单测试调用。 如果此方法返回0 码力 | 2248 页 | 11.10 MB | 9 月前3Python 标准库参考指南 3.13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1585 26.5 unittest --- 单元测试框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1586 26.5.1 基本实例 . . . 回归测试包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1672 26.8.1 为 test 包编写单元测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1672 26.8.2 使用命令行界面运行测试 . . . 子类,它会被记录下来并被忽略掉。如果可调用对象引发一个BaseException 子类,这个行为没有定义。 如果 future 对象已经完成或已取消,fn 会被立即调用。 下面这些Future 方法用于单元测试和Executor 实现。 set_running_or_notify_cancel() 这个方法只可以在执行关联Future 工作之前由Executor 实现调用或由单测试调用。 如果此方法返回0 码力 | 2242 页 | 11.73 MB | 9 月前3Python 标准库参考指南 3.11.10
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1643 26.5 unittest --- 单元测试框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1644 26.5.1 基本实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1743 26.9.1 为 test 包编写单元测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1743 26.9.2 使用命令行界面运行测试 . 子类,它会被记录下来并被忽略掉。如果可调用对象引发一个BaseException 子类,这个行为没有定义。 如果 future 对象已经完成或已取消,fn 会被立即调用。 下面这些Future 方法用于单元测试和Executor 实现。 set_running_or_notify_cancel() 这个方法只可以在执行关联Future 工作之前由Executor 实现调用或由单测试调用。 如果此方法返回0 码力 | 2399 页 | 11.19 MB | 9 月前3Python 标准库参考指南 3.7.13
测试交互性的 Python 示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1392 27.4 unittest --- 单元测试框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1414 27.5 unittest 以小写字母表示的编码名称,并返 回一个CodecInfo 对象。在搜索函数无法找到给定编码的情况下,它应当返回 None。 注解: 搜索函数的注册目前是不可逆的,这在某些情况下可能导致问题,例如单元测试或模块重载等。 虽然内置的open() 和相关联的io 模块是操作已编码文本文件的推荐方式,但本模块也提供了额外的工具 函数和类,允许在操作二进制文件时使用更多各类的编解码器: 7.2. codecs print("Nothing.") ... >>> fun.register(type(None), nothing) register() 属性将返回启用了装饰器堆栈、封存的未装饰函数,并会为每个变量单独创建单元测试: >>> @fun.register(float) ... @fun.register(Decimal) ... def fun_num(arg, verbose=False): (下页继续)0 码力 | 1961 页 | 9.14 MB | 9 月前3
共 23 条
- 1
- 2
- 3