教材第11章课后练习
11-1 城市和国家
city_functions.py
def formating(city, country):
return city.title()+', '+country.title()
test_cities.py
import unittest
from city_functions import formating
class FormatingTestCase(unittest.TestCase):
def test_city_country(self):
formated = formating('santiago', 'chile')
self.assertEqual(formated, 'Santiago, Chile')
unittest.main()
11-2 人口数量
city_functions.py(测试未通过)
def formating(city, country, population):
return city.title()+', '+country.title()+' - population '+str(population)
city_functions.py(测试通过)
def formating(city, country, population=None):
formated = city.title()+', '+country.title()
if population:
formated += ' - population '+str(population)
return formated
test_cities.py
import unittest
from city_functions import formating
class FormatingTestCase(unittest.TestCase):
def test_city_country(self):
formated = formating('santiago', 'chile')
self.assertEqual(formated, 'Santiago, Chile')
def test_city_country_population(self):
formated = formating('santiago', 'chile', population=5000000)
self.assertEqual(formated, 'Santiago, Chile - population 5000000')
unittest.main()
11-3 雇员
employee.py
class Employee():
def __init__(self, first_name, last_name, salary):
self.first_name = first_name
self.last_name = last_name
self.salary = salary
def give_raise(self, increment=5000):
self.salary += increment
test_employee.py
import unittest
from employee import Employee
class TestEmployee(unittest.TestCase):
def setUp(self):
self.employee = Employee('guo', 'yang', 100)
def test_give_default_raise(self):
initial_salary = self.employee.salary
self.employee.give_raise()
self.assertEqual(self.employee.salary, initial_salary+5000)
def test_give_custom_raise(self):
initial_salary = self.employee.salary
self.employee.give_raise(200)
self.assertEqual(self.employee.salary, initial_salary+200)
unittest.main()