11-1 城市和国家
# city.py
def get_formatted_city(city, country):
message = city.title()
message += ", "
message += country.title()
return message
# test_city.py
import unittest
from city import get_formatted_city
class CityTestCase(unittest.TestCase):
def test_formatted_city_1(self):
formatted_city = get_formatted_city("Guangzhou","China")
self.assertEqual(formatted_city, "Guangzhou, China")
def test_formatted_city_2(self):
formatted_city = get_formatted_city("los angeles", "america")
self.assertEqual(formatted_city, "Los Angeles, America")
unittest.main()
11-2 人口数量
# city.py
def get_formatted_city(city, country, population=0):
message = city.title()
message += ", "
message += country.title()
if population:
message += " - population "
message += str(population)
return message
# test_city.py
import unittest
from city import get_formatted_city
class CityTestCase(unittest.TestCase):
def test_formatted_city_1(self):
formatted_city = get_formatted_city("Guangzhou","China")
self.assertEqual(formatted_city, "Guangzhou, China")
def test_formatted_city_2(self):
formatted_city = get_formatted_city("Shanghai", "China", 30000000)
self.assertEqual(formatted_city, "Shanghai, China - population 30000000")
def test_formatted_city_3(self):
formatted_city = get_formatted_city("los angeles", "america", 3000000)
self.assertEqual(formatted_city, "Los Angeles, America - population 3000000")
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
def get_salary(self):
return self.salary
# test_employee.py
from employee import Employee
import unittest
class EmployeeTestCase(unittest.TestCase):
def setUp(self):
first_name = "first"
last_name = "last"
salary = 10000
self.my_employee = Employee(first_name, last_name, salary)
def test_give_default_raise(self):
salary_before = self.my_employee.get_salary()
self.my_employee.give_raise()
salary_now = self.my_employee.get_salary()
self.assertEqual(salary_before+5000, salary_now)
def test_give_custom_raise(self):
salary_before = self.my_employee.get_salary()
self.my_employee.give_raise(10)
salary_now = self.my_employee.get_salary()
self.assertEqual(salary_before+10, salary_now)
unittest.main()