Python 笔记 :12 代码测试

代码测试:是通过代码测试函数,来把执行的结果,和用户预设的代码内容,进行比较!

格式:

  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()

猜你喜欢

转载自www.cnblogs.com/wssking/p/11545873.html