《Python编程:从⼊门到实践》课后习题及答案—第11章
第11章测试代码
11-1 城市和国家:编写⼀个函数,它接受两个形参:⼀个城市名和⼀个国家名。这个函数返回⼀个格式为City, Country 的字符串,如Santiago, Chile 。将这个函数存储在⼀个名为city_functions.py的模块中。
创建⼀个名为test_cities.py的程序,对刚编写的函数进⾏测试(别忘了,你需要导⼊模块unittest 以及要测试的函数)。编写⼀个名为test_city_country() 的⽅法,核实使⽤类似于'santiago' 和'chile' 这样的值来调⽤前述函数时,得到的字符串是正确的。运⾏test_cities.py ,确认测试test_city_country() 通过了。
city_functions.py
def city_country(city_name, country_name):
return city_name + " , " + country_name
test_cities.py
c语言指针运算符import unittest
from city_functions import city_country
class NameTestCase(unittest.TestCase):update语句根据一张表
def test_city_country_1(self):
name = city_country("santiago", "chile")
self.assertEqual(name, "santiago , chile")
unittest.main()
11-2 ⼈⼝数量:修改前⾯的函数,使其包含第三个必不可少的形参population ,并返回⼀个格式为City, Country - population xxx 的字符串,如Santiago, Chile - population 5000000 。运⾏test_cities.py,确认测试test_city_country() 未通过。
修改上述函数,将形参population 设置为可选的。再次运⾏test_cities.py,确认测试test_city_country() ⼜通过了。
再编写⼀个名为test_city_country_population() 的测试,核实可以使⽤类似于'santiago' 、'chile' 和'pop
ulation=5000000' 这样的值来调⽤这个函数。再次运⾏test_cities.py,确认测试test_city_country_population() 通过了。
import unittest
from city_functions import city_country
class NameTestCase(unittest.TestCase):
def test_city_country(self):源代码如果生命只剩下最后一分钟
name = city_country("santiago", "chile")
self.assertEqual(name, "santiago , chile")
学python编程入门def test_city_country_population(self):
name = city_country("santiago", "chile","50000")
self.assertEqual(name, "santiago , chile-50000")
unittest.main()
11-3 雇员:编写⼀个名为Employee 的类,其⽅法__init__() 接受名、姓和年薪,并将它们都存储在属性中。编写⼀个名为give_raise() 的⽅法,它默认将年薪增加5000美元,但也能够接受其他的年薪增加量。
为Employee 编写⼀个测试⽤例,其中包含两个测试⽅法:test_give_default_raise() 和test_give_custom_raise() 。使⽤⽅法setUp() ,以免在每个测试⽅法中都创建新的雇员实例。运⾏这个测试⽤例,确认两个测试都通过了。
1import unittest
2
3class Employee():
4def__init__(self, first, last, pay):
5        self.first = first
6        self.last = last
7        self.pay = pay
8
9def give_raise(self, raise_pay = 5000):
10        self.pay += raise_pay
11
12class TestEmployee(unittest.TestCase):
css菜鸟教程 置顶
13def setUp(self):
14        st_employee = Employee("john", "smith", 8000)
15
16def test_give_default_raise(self):
17        st_employee.give_raise()
18        self.assertEqual(13000, st_employee.pay) 19
20def test_give_custom_raise(self):
21        st_employee.give_raise(12000)
站长工具欧亚洲22        self.assertEqual(20000, st_employee.pay) 23
24 unittest.main()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。