首页
/
每日頭條
/
圖文
/
簡單易懂的中文語法書
簡單易懂的中文語法書
更新时间:2025-07-11 19:05:24

簡單易懂的中文語法書?python學習筆記-基礎語法1、可通過的測試,下面我們就來聊聊關于簡單易懂的中文語法書?接下來我們就一起去了解一下吧!

簡單易懂的中文語法書(2022年5月29日學習筆記-基礎語法)1

簡單易懂的中文語法書

python學習筆記-基礎語法

第十一章 代碼測試
  • 一、測試函數
  • 二、測試類
一、測試函數

1、可通過的測試

  • 導入模塊unittest來提供代碼測試工具
  • 創建一個繼承unittest.TestCase()的類,用于包含一系列針對函數的單元測試
  • 使用unittest.main()來讓Python運行這個文件中的測試

方法

描述

單元測試

用于核實函數的某個方面沒有問題

全覆蓋式測試

用例包含一整套單元測試,涵蓋了何種可能的函數使用方式

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、各種斷言方法

  • 隻能在繼承unittest.TestCase的類中使用這些方法

方法

描述

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()

  • unittest.TestCase()類包含方法setUp(),Python将運行之,創建一次對象,再運行各個以test_打頭的方法

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

  • 方法setUp()做了兩件事:創建一個調查對象,創建一個答案列表;存儲這兩樣東西的變量名包含前綴self(即存儲在屬性中),因此可在這個類的任何地方使用。
  • 測試自己編寫的類時,方法setUp()讓測試方法編寫起來更容易:可在setUp()方法中創建一系列實例并設置它們的屬性,再在測試方法中直接使用這些事例。相比于在每個測試方法中都創建實例并設置其屬性要容易得多。
,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
出生缺陷防治人才培訓班内容簡介
出生缺陷防治人才培訓班内容簡介
王建目前正在學習出生缺陷防控咨詢師培訓課程。預防和減少出生缺陷,把好人生健康第一關。胎兒醫學與遺傳病多學科會診。掃碼看視頻防治出生缺陷,促進生育健康。每年的9月12日,是中國預防出生缺陷日。随着國家對出生缺陷防控的越發重視,在引導全社會聚力...
2025-07-11
mc最厲害的武器和鐮刀
mc最厲害的武器和鐮刀
《我的世界》很多小夥伴都玩過吧,它是一款高級沙盒遊戲,所呈現的世界并不是華麗的畫面與特效,而是注重在可玩性上面。這個遊戲雖然沒有劇情,但玩家可以在遊戲中自由建設,破壞和冒險。透過像樂高一樣的積木來組合與拼湊,輕而易舉的就能制作出房屋、城堡甚...
2025-07-11
國外女子深蹲
國外女子深蹲
很多妹子都不喜歡力量訓練原因是怕自己練出肌肉肌肉對于男生來說是件好事但對女生來說就是場噩夢所以我們平常在健身房很少看得到有妹子做力量訓練今天給大家介紹的這位加拿大妹子實屬清奇她不但做力量訓練而且還能扛着男朋友做力量訓練呢女友力十足男生看了都...
2025-07-11
水浒傳武松主要事迹時間軸
水浒傳武松主要事迹時間軸
在《水浒傳》中,武松武都頭的武藝是繞不開的一個話題。同時也是最難分析的一個話題。說的好了,就有武吹之嫌;說的不好了又會得罪武都頭的粉絲。所以,研究武松武藝是一件非常出力不讨好的事。但是,武松武藝的問題遲早都要做。早做晚做都得做。所以今天就來...
2025-07-11
蒙頂甘露茶屬于什麼茶
蒙頂甘露茶屬于什麼茶
常常有消費者詢問蒙頂甘露與蒙頂黃芽有什麼區别,這裡不從專業審評的角度,言簡意赅介紹一下。蒙頂山茶擁有文字記載2000多年的人工栽培史和1000餘年的貢茶史,古往今來為我國名茶珍品。蒙頂山茶品種繁多,主要有蒙頂甘露、蒙頂黃芽、蒙頂石花、玉葉長...
2025-07-11
Copyright 2023-2025 - www.tftnews.com All Rights Reserved