tft每日頭條

 > 圖文

 > 簡單易懂的中文語法書

簡單易懂的中文語法書

圖文 更新时间:2025-04-27 13:35:19

簡單易懂的中文語法書?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()方法中創建一系列實例并設置它們的屬性,再在測試方法中直接使用這些事例。相比于在每個測試方法中都創建實例并設置其屬性要容易得多。
,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved