import unittest
from survey import AnonymousSurvey
class TestAnonymousSurvey(unittest.TestCase):
'''针对AnonymousSurvey类的测试'''
def test_store_single_response(self):
question = "What language did you learn to speak?"
my_survey = AnonymousSurvey(question)
my_survey.store_response('English')
self.assertIn('English',my_survey.responses)
unittest.main()
```python
class AnonymousSurvey():
def __int__(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 result:")
for response in responses:
print('- '+response)
回答报错
该回答内容部分引用GPT,GPT_Pro更好的解决问题
这里可能存在的问题是,第5行class后面括号内应该填写什么?这里应该填写一个有意义的类名,用来表示这个测试类,比如TestAnonymoussurvey。
第9行question = 后面应该填写一个字符串,用来表示要调查的问题,比如'你最喜欢的运动是什么?’
第11行my_survey-store_response()后面应该填写一个字符串,用来表示调查者的回答,比如‘足球’
第13行self.assertIn()后面应该填写一个变量,用来表示调查者的回答,比如‘足球’。
所以代码修正后应该是这样:
import unittest
from survey import Anonymoussurvey
class TestAnonymoussurvey(unittest.TestCase):
def test_store_single_response(self):
question = '你最喜欢的运动是什么?'
my_survey = Anonymoussurvey(question)
my_survey.store_response('足球')
self.assertIn('足球', my_survey.responses)
unittest.main()
如果回答有帮助,望采纳。
该回答引用GPTᴼᴾᴱᴺᴬᴵ
您的代码缺少一个冒号(:)导致了语法错误,导致程序无法正常执行。可以尝试修改一下for循环中的代码,加上冒号后再试试,如下所示:
class AnonymousSurvey():
def __int__(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 result:")
for response in self.responses: # 加上冒号
print(f"- {response}")
在进行测试前,您还需要将AnonymousSurvey类中的__int__方法改为__init__,否则实例化该类时会出现如下错误:TypeError: 'AnonymousSurvey' object is not callable。因此,完整的代码应该是这样的:
import unittest
from survey import AnonymousSurvey
class TestAnonymousSurvey(unittest.TestCase):
'''针对AnonymousSurvey类的测试'''
def test_store_single_response(self):
question = "What language did you learn to speak?"
my_survey = AnonymousSurvey(question)
my_survey.store_response('English')
self.assertIn('English',my_survey.responses)
unittest.main()
class AnonymousSurvey():
def __init__(self,question): # 将 __int__ 改为 __init__
'''存储一个问题,并为存储答案做准备'''
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
这样,程序就应该可以正常运行并输出测试结果了。