测试代码
单元测试
验证程序是否按照预期输出
输入只含两个名字的姓名,测试结果
def get_formatted_name(first,last):
"""定义函数,并放在name_formatted.py文件中"""
full_name = first + ' ' + last
return full_name.title()
import unittest
from name_formatted import get_formatted_name
class NameTestCase(unittest.TestCase):
"""测试是否按照预期输出姓名"""
def test_first_last_name(self):
formatted_name = get_formatted_name('jin','hua')
self.assertEqual(formatted_name,'Jin Hua')
unittest.main()
如果有的人有三个名字,则应该修改相应程序
def get_formatted_name(first,last,middle = ''):
"""修改name_formatted.py中的函数,包含中间名"""
if middle:
full_name = first + ' ' + middle + ' ' + last
else:
full_name = first + ' ' + last
return full_name.title()
import unittest
from name_formatted import get_formatted_name
class TestNameCase(unittest.TestCase):
"""包含两种情况的测试"""
def test_first_last_name(self):
formatted_name = get_formatted_name('jin','hua')
self.assertEqual(formatted_name,'Jin Hua')
def NameTestCase(self):
formatted_name = get_formatted_name('hei','jiang','long')
self.assertEqual(formatted_name,'Hei Long Jiang')
unittest.main()
如果在测试过程中发现错误,不应该修改测试代码,而应该对函数进行修改
课后习题
11-1城市与国家
def get_city_country(city,country):
"""定义函数,储存在city_functions.py中"""
full = city + ' ' + country
return full.title
import unittest
from city_functions import get_city_country
class CityTestCase(unittest.TestCase):
def test_city_country(self):
match = get_city_country('santiago','chile')
self.assertEqual(match,'Santiago Chile')
unittest.main()
11-2人口数量
def get_city_country(city,country,population = ''):
if population:
full = city.title() + ' ' + country.title() + ' ' + '-' + 'population' + ' ' + str(population)
else:
full = city.title() + ' ' + country.title()
return full
import unittest
from city_functions import get_city_country
class CityTestCase(unittest.TestCase):
def test_city_country(self):
match = get_city_country('santiago','chile')
self.assertEqual(match,'Santiago Chile')
def test_city_country_population(self):
match2 = get_city_country('santiago','chile',5000000)
self.assertEqual(match2,'Santiago Chile -population 5000000')
unittest.main()