代码测试:是通过代码测试函数,来把执行的结果,和用户预设的代码内容,进行比较!
格式:
import unittest
#定义的类,要继承unittest.TestCase类
class Test_a(unittest.TestCase):
......
#方法名,必须以test开头,下面的unittest.main( ),才可自动执行代码测试,否则不会执行
def test_first_last_name(self):
#这里会把函数的返回值,和用户预设的结果,进行比较,如果相同,则通过测试,否则报错,并提示测试失败
self.assertEqual(代码执行的结果或调用的函数(有返回值),用户预设的结果(如:'Jimm Green')
unittest.main( )
例子:
#判断用户输入的格式,是否符合格式要求
import unittest
#定义一个函数,用来返回全部姓名:
def get_formatted_name(first, last,middle=''):
"""Generate a neatly formatted full name."""
#如果有middle有值,则输出middle,否则不输出middle
if middle:
full_name = first + ' ' + middle + ' ' + last
else:
full_name=first+' '+last
return full_name.title()
#用来让用户输入first_name和last_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("\tNeatly formatted name: " + formatted_name + '.')
class NamesTestCase(unittest.TestCase):
"""濺试name_function.py"""
# 定义的方法,必须以test开头,否则Unittest.main()函数不会自动执行类中的测试方法!
def test_first_last_name(self):
"""能够正确地处理Janis Joplin这样的姓名吗?"""
formatted_name = get_formatted_name("janis", 'joplin')
# 这个函数,会把第一个参数值和第二个参数值,进行比较,如果相等则通过测试,否则不通过!
self.assertEqual(formatted_name, 'Janis Joplin')
def test_first_middle_last_name(self):
fromatted_name = get_formatted_name("wss", 'win', 'king')
self.assertEqual(fromatted_name, 'Wss King Win')
unittest.main()