遇到看不明白的地方,欢迎在评论中留言呐,一起讨论,一起进步!
本文参考:《Python编程:从入门到实践(第2版)》
一、测试函数
首先我们准备一个要测试的函数,这个函数在名和姓之间加上一个空格并将其首字母大写,再返回结果。
"""文件名:name_function"""
def get_formatted_name(first,last):
"""生成整洁的姓名。"""
full_name = f"{
first} {
last}"
return full_name.title()
我们再来编写一个使用该函数的程序:
from name_function import get_formatted_name
print("Enter 'q' at any time to quit.")
while True:
first = input("\nPlease give me a first name:")
if first == 'q':
break
last = input("Please give me a last name:")
if last == 'q':
break
formatted_name = get_formatted_name(first,last)
print(f"\tNeatly formatted name:{
formatted_name}.")
运行结果如下:
Python 标准库中的模块 unittest 提供了代码测试工具。 单元测试用于核实函数的某个方面没有问题。这样一来我们就不用自己编写程序依次运行了。
测试用例是一组单元测试,它们用来核实函数在各种情形下的行为是否都符合要求。
要进行单元测试,可先导入模块 unittest 和要测试的函数,再创建一个继承 unittest.TestCase 的类,并编写一系列方法对函数行为的不同方面进行测试。
2.1 通过案例
下面的测试用例只包含一个方法,它检查函数 get_formatted_name()
在给定名和姓时能否正确工作:
import unittest
from name_function import get_formatted_name
class NamesTestCase(unittest.TestCase):
"""测试name_function.py。"""
def test_first_last_name(self):
"""能够正确地处理像Janis Joplin这样的姓名吗?"""
formatted_name = get_formatted_name('janis','joplin')
self.assertEqual(formatted_name,'Janis Joplin')
if __name__