測試class
阿新 • • 發佈:2017-05-17
stc col 如果 是否 cas 用戶 進行 false 斷言
各種斷言方法:
assertEqual(a,b)
a == b
assertNotEqual(a,b)
a != b
assertTrue(x)
x == True
assertFalse(x)
x == Flase
assertIn(item,list)
判斷item 在 list中
assertNotIn(item,list)
判斷 item不在list中
編寫一個類,用於調查用戶最喜歡的運動:
class Survey():
‘‘‘問卷調查‘‘‘
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(‘surver_result :‘)
for response in self.responses:
print(‘- ‘ + response)
這個類,通過方法 show_question(),對用戶進行提問;通過方法 store_response()來保存用戶的答復。
最終生成一個列表:responses 用於包含用戶的答案。
編寫一個測試代碼,對這個類進測試:
import unittest
from surveys import Survey
class Test_Survey(unittest.TestCase):
‘‘‘針對Survey進測試的類‘‘‘
def test_store_single_responses(self):
‘‘‘測試1個答案的方法‘‘‘
question = "What is your favorite sports ?"
my_survey = Survey(question)
my_survey.store_response(‘compute games‘)
self.assertIn(‘compute games‘ , my_survey.responses)
這個代碼只能對一個答案進行測試,意義不大,如果用戶輸入了多個答案,如何確保程序不出錯,也需要進行測試。
import unittest
from surveys import Survey
class Test_Survey(unittest.TestCase):
‘‘‘針對Survey進測試的類‘‘‘
def test_store_single_responses(self):
‘‘‘測試1個答案的方法‘‘‘
question = "What is your favorite sports ?"
my_survey = Survey(question)
my_survey.store_response(‘compute games‘)
self.assertIn(‘compute games‘ , my_survey.responses)
def test_store_more_response(self):
‘‘‘測試多個答案的方法‘‘‘
question = "What is your favorite sports ?"
my_survey = Survey(question)
responses = [‘basketball‘ , ‘football‘ , ‘compute games‘]
for response in responses:
my_survey.store_response(response)
for response in responses:
self.assertIn(response,my_survey.responses)
通過setUp巧妙的修改這個測試代碼:
import unittest
from surveys import Survey
class Test_Survey(unittest.TestCase):
‘‘‘測試Survey類是否在各種情況正常工作‘‘‘
def setUp(self):
question = "What is your favorite sports ?"
self.my_survey = Survey(question)
self.responses = [‘basketball‘ , ‘football‘ , ‘compute games‘]
def test_single_response(self):
‘‘‘測試單個答案的方法‘‘‘
self.my_survey.store_response(self.responses[0])
self.assertIn(self.responses[0],self.my_survey.responses)
def test_more_response(self):
‘‘‘測試多個答案的方法‘‘‘
for response in self.responses:
self.my_survey.store_response(response)
for response in self.responses:
self.assertIn(response,self.my_survey.responses)
測試class