Python第11章 测试代码
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢ 测试用例:一组单元测试,一起核实 函数在各种情况下的行为都符合要求
➢ 断言方法
unittest单元测试
测试类
示例
➢ Test Case:测试用例 ➢ Test Suite:测试套件,用来组装多个
测试用例 ➢ Test Runner:执行测试用例 ➢ Test Fixture:测试环境的搭建和销毁,
检查条件
round(a-b, 7) == 0 round(a-b, 7) != 0 a>b a >= b a<b a <= b r.search(s) not r.search(s) a、b 两个序列包含的元素相同,不管元素出现的顺序如何
测试类 unittest单元测试-输出结果
➢ .:代表测试通过。 ➢ F:代表测试失败,F代表failure。 ➢ E:代表测试出错,E代表error。 ➢ S:代表跳过该测试,S代表skip。
第11章 测试代码
目录
CONTENT
01
测试函数
02
测试类
Βιβλιοθήκη Baidu
01 测试函数
测试的必要性
测试函数
➢ 程序员会犯错 ➢ 编写函数或类时,通过测试可以确认代码是否能够正常工作
测试函数
测试函数
➢ 示例:已有函数get_formatted_name(first,last),接收两个参数,返回完整的名字信息。
setUp()方法
测试类
➢ setUp()方法用于测试用例执行前的初始化,对Calculator的测试类进行优化,使得代码更简单 和易维护。
小结
谢谢
THANK YOU
3. class NameTestCase(unittest.TestCase):创建 测试所需的类,继承自unittest.TestCase类,该 类包含了测试函数test_first_last_name()。
4. unittest.main(argv=[‘first-arg-is-ignored’],exit = False):执行测试。
检查条件
a == b a != b bool(x) is True bool(x) is False a is b a is not b x is None x is not None a in b a not in b isinstance(a, b) not isinstance(a, b)
断言方法
setUp()和tearDown(),setUp()测试用 例执行前的初始化, tearDown()测试 用例执行后的善后。
测试类
unittest单元测试-断言方法
断言方法
assertEqual(a, b) assertNotEqual(a, b) assertTrue(x) assertFalse(x) assertIs(a, b) assertIsNot(a, b) assertIsNone(x) assertIsNotNone(x) assertIn(a, b) assertNotIn(a, b) assertlsInstance(a, b) assertNotIsInstance(a, b)
测试函数
测试函数
➢ 为函数get_formatted_name(first,last)编写测试类NameTestCase。
1. import unittest:导入unittest模块。unittest是 Python自带的单元测试框架,用于编写和运行 可重复的测试。
2. from name_function import get_formatted_name:导入需要测试的函数
With 语句块使用日志器生成 level 级别的日志
断言方法
assertAlmostEqual(a, b) assertNotAlmostEqual(a, b) assertGreater(a, b) assertGreaterEqual(a, b) assertLess(a, b) assertLessEqual(a, b) assertRegex(s, r) assertNotRegex(s, r) assertCountEqual(a, b)
检查条件
fun(*args, **kwds) 引发 exc 异常
fun(*args, **kwds) 引发 exc 异常,且异常信息匹配 r 正则 表达式
fun(*args, **kwds) 引发 warn 警告
fun(*args, **kwds) 引发 warn 警告,且警告信息匹配 r 正 则表达式
assertRaises(exc, fun, *args, **kwds) assertRaisesRegex(exc, r, fun, *args, **kwds) assertWarns(warn, fun, *args, **kwds) assertWamsRegex(warn, r, fun, *args, **kwds) assertLogs(logger, level)
5. 测试结果:句点表明有一个测试通过了,“Ran 1 test in 0.002s”指Python消耗0.002秒的时间 运行了一个测试,最后的OK表明所有的测试用 例都通过了。
测试函数
测试函数
➢ 导入模块unittest: import unittest ➢ 测试所用的类必须继承unittest.TestCase类 ➢ 测试类中用于测试的方法必须以test开头
02
测试类
unittest单元测试、setUp()方法
测试类
➢ 示例:为Calculator类编写测试类,与测试函数类似
unittest单元测试
unittest单元测试框架:
➢ 提供用例的组织和执行 ➢ 提供丰富的比较方法 ➢ 提供丰富的日志
测试类
➢ 单元测试:用于核实函数的某个功能 没有问题
➢ 断言方法
unittest单元测试
测试类
示例
➢ Test Case:测试用例 ➢ Test Suite:测试套件,用来组装多个
测试用例 ➢ Test Runner:执行测试用例 ➢ Test Fixture:测试环境的搭建和销毁,
检查条件
round(a-b, 7) == 0 round(a-b, 7) != 0 a>b a >= b a<b a <= b r.search(s) not r.search(s) a、b 两个序列包含的元素相同,不管元素出现的顺序如何
测试类 unittest单元测试-输出结果
➢ .:代表测试通过。 ➢ F:代表测试失败,F代表failure。 ➢ E:代表测试出错,E代表error。 ➢ S:代表跳过该测试,S代表skip。
第11章 测试代码
目录
CONTENT
01
测试函数
02
测试类
Βιβλιοθήκη Baidu
01 测试函数
测试的必要性
测试函数
➢ 程序员会犯错 ➢ 编写函数或类时,通过测试可以确认代码是否能够正常工作
测试函数
测试函数
➢ 示例:已有函数get_formatted_name(first,last),接收两个参数,返回完整的名字信息。
setUp()方法
测试类
➢ setUp()方法用于测试用例执行前的初始化,对Calculator的测试类进行优化,使得代码更简单 和易维护。
小结
谢谢
THANK YOU
3. class NameTestCase(unittest.TestCase):创建 测试所需的类,继承自unittest.TestCase类,该 类包含了测试函数test_first_last_name()。
4. unittest.main(argv=[‘first-arg-is-ignored’],exit = False):执行测试。
检查条件
a == b a != b bool(x) is True bool(x) is False a is b a is not b x is None x is not None a in b a not in b isinstance(a, b) not isinstance(a, b)
断言方法
setUp()和tearDown(),setUp()测试用 例执行前的初始化, tearDown()测试 用例执行后的善后。
测试类
unittest单元测试-断言方法
断言方法
assertEqual(a, b) assertNotEqual(a, b) assertTrue(x) assertFalse(x) assertIs(a, b) assertIsNot(a, b) assertIsNone(x) assertIsNotNone(x) assertIn(a, b) assertNotIn(a, b) assertlsInstance(a, b) assertNotIsInstance(a, b)
测试函数
测试函数
➢ 为函数get_formatted_name(first,last)编写测试类NameTestCase。
1. import unittest:导入unittest模块。unittest是 Python自带的单元测试框架,用于编写和运行 可重复的测试。
2. from name_function import get_formatted_name:导入需要测试的函数
With 语句块使用日志器生成 level 级别的日志
断言方法
assertAlmostEqual(a, b) assertNotAlmostEqual(a, b) assertGreater(a, b) assertGreaterEqual(a, b) assertLess(a, b) assertLessEqual(a, b) assertRegex(s, r) assertNotRegex(s, r) assertCountEqual(a, b)
检查条件
fun(*args, **kwds) 引发 exc 异常
fun(*args, **kwds) 引发 exc 异常,且异常信息匹配 r 正则 表达式
fun(*args, **kwds) 引发 warn 警告
fun(*args, **kwds) 引发 warn 警告,且警告信息匹配 r 正 则表达式
assertRaises(exc, fun, *args, **kwds) assertRaisesRegex(exc, r, fun, *args, **kwds) assertWarns(warn, fun, *args, **kwds) assertWamsRegex(warn, r, fun, *args, **kwds) assertLogs(logger, level)
5. 测试结果:句点表明有一个测试通过了,“Ran 1 test in 0.002s”指Python消耗0.002秒的时间 运行了一个测试,最后的OK表明所有的测试用 例都通过了。
测试函数
测试函数
➢ 导入模块unittest: import unittest ➢ 测试所用的类必须继承unittest.TestCase类 ➢ 测试类中用于测试的方法必须以test开头
02
测试类
unittest单元测试、setUp()方法
测试类
➢ 示例:为Calculator类编写测试类,与测试函数类似
unittest单元测试
unittest单元测试框架:
➢ 提供用例的组织和执行 ➢ 提供丰富的比较方法 ➢ 提供丰富的日志
测试类
➢ 单元测试:用于核实函数的某个功能 没有问题