编写函数或是类时,我们还可以为其编写测试。本章将学习如何使用python中的模块unittest中的工具来测试代码。/font>
unittest提供了代码测试工具,单元测试用于核实函数的某个方面没有问题,测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求,全覆盖测试,用例包含一整套单元测试
创建测试时,先导入模块unittest以及要测试的对象,在创建一个继承unittest。testcase类并编写一系列不同的函数进行测试。
各种断言方法
方法 | 用途 |
---|---|
assertEqual(a,b) | 核实a==b |
assertNotEqual(a,b) | 核实a!=b |
assertTrue(x) | 核实x为True |
assertFalse(x) | 核实x为False |
assertIn(item,list) | 核实item在list里 |
assertNotIn(item,list) | 核实item不在list里 |
方法setUp()用于储存调查对象和答案
代码如下(示例):
#城市和国家 def city_functions(city,country): x=city.title()+','+country.title() return x #人口数量 def city_country_population(city,country,population=''): if population=='': x=city.title()+','+country.title() return x else: y=city.title()+','+country.title()+'-population '+str(population) return y #雇员 class Employee(): def __init__(self,first_name,last_name,package): self.first_name=first_name.title() self.last_name=last_name.title() self.package=str(package) def give_raise(self,up=''): if up=='': self.up=500 self.package=int(self.up)+int(self.package) return self.package else: self.up=up self.package=int(self.up)+int(self.package) return self.package def show_employee(self): z=self.first_name+' '+self.last_name+"'s package is "+str(self.package) print(z) return z
代码如下(示例):
import unittest import _11_2 #城市与国家与人口数量 class NameTestCase(unittest.TestCase): def test_city_country(self): city_country=_11_2.city_functions('jinan','china') self.assertEqual(city_country,'Jinan,China') def test_city_country_population(self): #加入人口 city_country_population=_11_2.city_country_population('jinan','china',1000000) self.assertEqual(city_country_population,'Jinan,China-population 1000000') #不加入人口 city_country_population=_11_2.city_country_population('jinan','china') self.assertEqual(city_country_population,'Jinan,China') #雇员 def test_give_default_raise(self): employee=_11_2.Employee('zhang','san',100000) show_em=employee.show_employee() self.assertEqual(show_em,"Zhang San's package is 100000") employee.give_raise() show_em=employee.show_employee() self.assertEqual(show_em,"Zhang San's package is 100500") employee.give_raise(100) show_em=employee.show_employee() self.assertEqual(show_em,"Zhang San's package is 100600") #setup函数 def setUp(self): self.employ=_11_2.Employee('zhang','san',1) self.input=4 self.answer="Zhang San's package is 5" def test_give_custom_raise(self): self.employ.give_raise(self.input) show_em=self.employ.show_employee() self.assertEqual(show_em,self.answer) unittest.main()
本章学习了对函数和类的测试,学习了一些断言方法,setUp()函数。