单元测试
.
- 描述
单元测试是用来对一个模块,一个函数或者一个类进行正确性检验的测试工作
例
测试函数abs()
a.输入正数,1、0.1、11.1,期待返回值与输入相同
b.输入负数,-1、-1.1,期待返回值与输入相反
c.输入0,期待返回0
d.输入非数值类型,期待抛出TypeError
如果单元测试通过,说明测试这个函数能够正常工作
- 意义
以测试为驱动的开发模式最大好处就是确保一个程序模块的行为符合我们设计的测试用例。在将来修改的时候,可以极大程序保证该模块行为仍然是正确的
- 测试函数
准备测试函数
# name_fucn.py
def get_formatted_name(first, last):
full_name = first + ' ' + last
return full_name.title()
编写测试用例
# test_name_func.py
import unittest
from name_func import get_formatted_name
class NmaesTestCase(unittest.TestCase):
"""测试name_func.py"""
def test_first_last_name(self):
formatted_name = get_formatted_name('janis', 'joplin')
self.assertEqual(formatted_name, 'Janis Joplin')
unittest.mian()
a.导入模块unittest
和要测试的函数get_formatted_name()
b.创建一个继承unittest.TestCase
的类NamesTestCase
,用于包含一系列针对测试函数的单元测试。
c.NamesTestCase
包含一个方法test_first_last_name()
,当我们运行test_name_func.py
时,所有以test_
开头的方法都将自动运行。
d.接下来调用unittest的断言方法assertEqual()
,用以比较函数结果和正确结果,如果相等,则万事大吉,如果不相等就通知一下。
测试成功,输出结果
.
----------------------------------------------------------------------
Ran 1 test in 0.001s
OK
测试通过打印一个句点.
测试引发错误时打印一个E
测试导致断言失败时打印一个F