美文网首页python进阶Java-Python-Django社区Python学习日志
【day 9】python编程:从入门到实践学习笔记-测试代码(

【day 9】python编程:从入门到实践学习笔记-测试代码(

作者: 苍云横渡 | 来源:发表于2018-03-21 09:37 被阅读129次

学习笔记目录
【day 1】python编程:从入门到实践学习笔记-安装、变量和简单数据类型
【day 2】python编程:从入门到实践学习笔记-列表以及其操作
【day 3】python编程:从入门到实践学习笔记-if 语句(末附练习答案代码)
【day 4】python编程:从入门到实践学习笔记-字典(末附练习答案代码)
【day 5】python编程:从入门到实践学习笔记-用户输入和while循环(末附答案代码)
【day 6】python编程:从入门到实践学习笔记-函数(末附练习答案代码)
【day 7】python编程:从入门到实践学习笔记-类(末附练习答案代码)
【day 8】python编程:从入门到实践学习笔记-文件和异常(末附练习答案代码)
【day 9】python编程:从入门到实践学习笔记-测试代码(末附练习答案代码)
【day 10】python编程:从入门到实践学习笔记-Django入门(一)
【day 11】python编程:从入门到实践学习笔记-Django入门(二)
【day 12】python编程:从入门到实践学习笔记-Django入门(三)
【day 13】python编程:从入门到实践学习笔记-Django入门(四)
【day 14】python编程:从入门到实践学习笔记-用户账户(一)
【day 15】python编程:从入门到实践学习笔记-用户账户(二)
【day 16】python编程:从入门到实践学习笔记-用户账户(三)
【day 17】python编程:从入门到实践学习笔记-设计样式和部署(一)
【day 18】python编程:从入门到实践学习笔记-设计样式和部署(二)& 补充

第十一章 测试代码

测试函数

单元测试和测试用例
Python标准库中的模块unittest提供了代码测试工具。单元测试用于核实函数的某个方面没有问题;测试用例时一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求。。

测试示例
现在有这么一个函数以及其单元测试:

#name_function.py
def get_formatted_name(first, last, middle=''):
    if middle:
        full_name = first + ' ' + middle + ' ' + last
    else:
        full_name = first + ' ' + last
    return full_name.title()
#test_name_ function.py
import unittest
from name_function import get_formatted_name

class NamesTestCase(unittest.TestCase):
    def test_first_last_name(self):
        formatted_name = get_formatted_name('janis', 'joplin')
        self.assertEqual(formatted_name, 'Janis Joplin')

unittest.main()

运行结果:
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK

首先导入模块unittest和要测试的函数get_formatted_ name()。接着创建一个单元测试类NamesTestCase,记住,类名最好包含Test并且继承unittest.TestCase类,这样python才能识别为测试类。
接着编写好测试方法之后(在这里我们只写了一个方法:只有名和姓的姓名能否被正确地格式化),当我们运行 test_name_ function.py时,所有以test开头的方法都将自动运行
最后,我们使用了unittest类的一个断言方法unittest.assertEqual(),用来核实得到的结果是否与期望的结果一致。代码行unittest.main()让python运行文件中的测试。

测试类

各种断言方法
python的unittest.TestCase类中提供了很多断言方法(检查应该满足的条件是否确实满足,返回布尔值)。
下面提供了六种常用的断言方法:

  • assertEqual(a, b):核实a == b
  • assertNotEqual(a, b):核实a != b
  • assertTrue(x):核实x为True
  • assertFalse(x):核实x为False
  • assertIn(item, list):核实item在list中
  • assertNotIn(item, list):核实item不在list中

当测试方法多了起来的时候,每次都要创建一个实例对象很麻烦,而python的unittest.TestCase类中提供了方法setup(),让我们只需创建一次实例对象即可让所有方法使用该对象(运行测试时如果包含这个函数将会首先运行它)。
注意:测试通过时为一个句点,测试引发错误时为一个E,测试导致断言失败时为一个F。


第十一章练习答案代码
链接:https://pan.baidu.com/s/1vnwIuf-NZXBoHYL7QUH7Fg 密码:pp35

相关文章

网友评论

    本文标题:【day 9】python编程:从入门到实践学习笔记-测试代码(

    本文链接:https://www.haomeiwen.com/subject/hgdbqftx.html