python
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 self.responses:
print('-'+response)
用于测试的类
python
import unittest
from survey import AnonymousSurvey
class TestAnonymousSurvey(unittest.TestCase):
def test_store_single_response(self):
'''测试一个答案也会被妥善储存'''
question="What language did you first learn to speak?"
#survey的属性question
my_survey=AnonymousSurvey(question)
#形成实例my_survey
my_survey.store_response('english')
#实例.方法名(形参)调用方法
self.assertIn('english',my_survey.responses)
#断言进行匹配
def test_store_three_responses(self):
question="what language did you learn first?"
#survey的属性
my_survey=AnonymousSurvey(question)
#形成实例
responses=['english','spanish','mandarin']
#survey的另一个属性,一个不为空的测试用列表
for response in responses:
my_survey.store_response(response)
#对测试列表中的每个元素调用survey中的方法store_response(元素)
#调用后应该形成了一个试后列表
for response in responses:
self.assertIn(response,my_survey.responses)
#对测试列表中的每个元素进行循环,检测它们是否在试后列表中
#my_survey.responses就是前面survey中的self.responses
unittest.main()
输出
python
..
----------------------------------------------------------------------
Ran 2 tests in 0.004s
OK
------------------
(program exited with code: 0)
请按任意键继续. . .