簡單易懂的中文語法書?python學習筆記-基礎語法1、可通過的測試,下面我們就來聊聊關于簡單易懂的中文語法書?接下來我們就一起去了解一下吧!
python學習筆記-基礎語法
第十一章 代碼測試1、可通過的測試
方法 |
描述 |
單元測試 |
用于核實函數的某個方面沒有問題 |
全覆蓋式測試 |
用例包含一整套單元測試,涵蓋了何種可能的函數使用方式 |
self.assertEqual(A,B) |
一種斷言方法,将A的值與B相比較并反饋 |
def get_formatted_name(first,last):
full_name = first ' ' last
return full_name.title()
import 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')
if __name__ == '__main__':
unittest.main()
輸出結果為:
Ran 1 test in 0.003s
OK
2、不能通過測試
def get_formatted_name(first,middle,last):
full_name = first " " middle ' ' last
return full_name.title()
import 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')
if __name__ == '__main__':
unittest.main()
輸出結果為:
Ran 1 test in 0.005s
FAILED (errors=1)
Error
Traceback (most recent call last):
File "D:\Python_Work\Python學習\Python編程-從入門到實踐\測試name_function中的函數.py", line 5, in test_first_last_name
formatted_name = get_formatted_name('janis', 'joplin')
TypeError: get_formatted_name() missing 1 required positional argument: 'last'
3、測試未通過時的做法
def get_formatted_name(first,last,middle=''):
if middle:
full_name = first " " middle ' ' last
else:
full_name = first ' ' last
return full_name.title()
import 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')
if __name__ == '__main__':
unittest.main()
輸出結果為:
Ran 1 test in 0.002s
Launching unittests with arguments python -m unittest D:/Python_Work/Python學習/Python編程-從入門到實踐/測試name_function中的函數.py in D:\Python_Work\Python學習\Python編程-從入門到實踐
OK
4、添加新測試
def get_formatted_name(first,last,middle=''):
if middle:
full_name = first " " middle ' ' last
else:
full_name = first ' ' last
return full_name.title()
import 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')
def test_first_middle_last_name(self):
formatted_name = get_formatted_name('wolfgang','mozart','amadeus')
self.assertEqual(formatted_name,'Wolfgang Amadeus Mozart')
if __name__ == '__main__':
unittest.main()
輸出結果為:
Ran 2 tests in 0.003s
OK
1、各種斷言方法
方法 |
描述 |
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、一個要測試的類
class AnonySurvey():
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)
測試類:
import unittest
from language_survery import AnonySurvey
class TestAnonySurvey(unittest.TestCase):
def test_store_single_response(self):
question = input("What language did you first learn to speak?")
my_survey = AnonySurvey(question)
my_survey.store_response("English")
self.assertIn('English',my_survey.responses)
def test_store_three_responses(self):
question = input("What language did you first learn to speak?")
my_survey = AnonySurvey(question)
responses = ['English','Spanish','Mandarin']
for response in responses:
my_survey.store_response(response)
for response in responses:
self.assertIn(response,my_survey.responses)
unittest.main()
輸出結果為:
Ran 2 tests in 0.000s
OK
3、方法setUp()
class AnonySurvey():
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)
import unittest
from language_survery import AnonySurvey
class TestAnonySurvey(unittest.TestCase):
def setUp(self):
question = "What language did you first learn to speak?"
self.my_survey = AnonySurvey(question)
self.responses = ['English','Spanish','Mandarin']
def test_store_single_response(self):
self.my_survey.store_response(self.responses[0])
self.assertIn(self.responses[0],self.my_survey.responses)
def test_store_three_responses(self):
for response in self.responses:
self.my_survey.store_response(response)
for response in self.responses:
self.assertIn(response,self.my_survey.responses)
if __name__ == '__main__':
unittest.main()
輸出結果為:
Ran 2 tests in 0.002s
OK
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!