使用unittest模块进行测试,只需要知道:
1、被测函数名及其参数
2、与输入对应的‘正确输出’
使用unittest模块进行测试的优点:
1、测试代码和功能代码分开,在函数功能确定后即可编写,不必等到函数功能实现之后。
2、测试用例代码段各自独立,测试内容清晰明白
3、如果函数功能扩展了,可以方便地使用原来的测试代码进行测试,进而了解函数的改变对原有功能是否产生影响。
示例代码如下:
import unittest # unittest is the module used to do the test
from name_function import get_formatted_name # get_formatted_name is the function needed to be test
class NameTestCase(unittest.TestCase): # class used to do test
'''test get_formatted_name'''
def test_first_last_name(self): # test case
'''deal with name like: Jenny Huang'''
formatted_name = get_formatted_name('Jenny', 'Huang')
self.assertEqual(formatted_name, 'Jenny Huang')
def test_first_middle_last_name(self): # test case
'''deal with name like: Jenny Liying Huang'''
formatted_name = get_formatted_name('Jenny', 'Huang','Liying')
self.assertEqual(formatted_name, 'Jenny Liying Huang')
if __name__ == '__main__':
unittest.main()
说明:
1、引入unittest模块和被测函数。
2、定义测试类,NameTestCase,该类需要从 unittest.TestCase继承。
3、将每个测试用例,定义为类中的一个函数。函数功能分为两个步骤,第一步或得被测代码的执行结果,第二步检查结果是否与预期相符。
4、最后,运行该测试文件。当文件被运行时,其中所有的测试用例都将被执行。
测试成功时显示:
Ran 2 tests in 0.001s
OK
测试失败时显示:几个用例失败,同时失败用例的具体位置和原因
Ran 3 tests in 0.004s
FAILED (errors=1)