PYTHON 代码测试

在编写好一系列的函数,类后,该如何测试代码是否按照个人想法一样执行,下面将介绍测试类。

1.流程

1.在代码开头引入Python标准库的模块unittest
2.自己新建一个类,并且以unittest.TestCase类为基类
3.可以有setUp()函数,函数中准备好初始条件。
4.以test_开头的方法,将在测试中依序进行,并且两个方法互不干扰,即在一个方法改变
初始条件后,在另一个方法仍是按照setUp()中的初始条件。若断言的语句全为真运行时
返回OK,否者报错。
5.类外调用unittest.main()

unittest模块中断言的方法:

方法 功能
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中

2.例子

2.1 测试函数返回值

#coding= utf-8 
import unittest		#引入模块

def name_change(name):
	return name.upper()  #返回输入字符串的大写模式
	
class Test_namechange(unittest.TestCase):
	def setUp(self):
		self.name = "benny"		#初始条件
		
	def test_1(self):
		self.assertEqual(name_change(self.name),"BENNY")	#断言是否相等
		
unittest.main()

输出结果:
PYTHON 代码测试_第1张图片
代码中,一开始定义了一个返回字符串大写的函数。在下面的测试类中,会判断name_change(self.name)的值和"BENNY"是否相等,最后相等就会如结果一样给出OK。

2.2 测试类功能

#coding= utf-8 
import unittest	

class Pets():    
	def __init__(self):
		self.pets = []
		
	def store(self,pet):
		self.pets.append(pet)		#往列表中添加元素
	
	def show(self):
		for pet in self.pets:
			print(pet)
			
class test_Pets(unittest.TestCase):
	def setUp(self):
		self.PET = Pets()
		self.pet_list = ['dog','cat','frog']
		#初始化条件中先建立一个对象,和预备的宠物名单
		
	def test_1(self):
		self.PET.store(self.pet_list[0])
		self.assertIn(self.pet_list[0],self.PET.pets)
#测试类中添加宠物功能,判断该元素是否已经添加
		
	def test_2(self):
		for pet in self.pet_list:
			self.PET.store(pet)
		self.assertEqual(len(self.PET.pets),3)
#验证test_1添加了一个元素,test_2添加了三个元素。两个测试方法代码互不相关
unittest.main() 

运行结果:
PYTHON 代码测试_第2张图片

你可能感兴趣的:(python)