python标准库中的模块unittest提供了代码测试工具。
unittest Module中的断言方法
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中
例1:
要被测试的函数(将姓与名合在一起):
def get_formatted_name(first,last):
full_name = first + '' + last
return full_name.title()
单元测试用于核实函数的某个方面没有问题;测试用例是一组单元测试。
测试:
import unittest //导入模块unittest
from name_function import get_formatted_name //导入要测试的函数
class NamesTestCase(unittest.TestCase):
def test_first_last_name(self):
formatted_name = get_formatted_name('janis','joplin')
self.assertEqual(formatted_name,'Janis Joplin')
//断言方法用来核实得到的结果是否与期望的结果一致
例2:
要被测试的函数(用户面对调查时提供答案):
class AnonymousSurvey(): //定义这个匿名答卷类
def __init__(self,question):
self.question=question
self.responses=[]
def show_question(self):
print(self.question)
def store_response(self,new_response): //添加结果的方法
self.responses.append(new_response)
def show_results(self):
print("Survey results:")
for response in responses:
print('-'+response)
question=''what movies do you like?'
survey = AnonymousSurvey(question) //创建该类的对象
survey.show_question()
print("enter q to quit.\n")
while True:
response = input("Language:")
if response ='q':
break
survey.store_response(response)
print("\nThank you to every who participated in the survey!")
survey.show_results() //显示结果
测试类:
import unittest
class TestAnonymousSurvey(unittest.TestCase):
def test_store_single_response(self): //测试单个答案是否会被妥善存储
pass
def test_store_three_response(self): //测试三个答案是否会被妥善存储
question=''what movies do you like?'
survey = AnonymousSurvey(question)
responses=['english','spanish','mandarin']
for response in response:
survey.store_response(response)
for response in response:
self.assertIn(response,survey.responses)