我的python學習歷程
快要期末考試了,最近一直在進行期末考試的複習工作,所以沒來得及更新部落格,抱歉了,今天進行python基礎中最後一部分測試程式碼的學習。
1.測試函式
在測試函式前,首先需要建立一個函式進行測試,在這裡建立一個名字的函式進行測試。
def a_asd(first,last):
all_asd=first+’ '+last
return all_name.title() //這個函式表示了名字的組成,接下來需要編寫一個程式來執行這個函式。
from go_asd import a_asd
print(“Enter ‘q’ to quit at any time.”)
while True:
first=input("\nPlease give me your first.")
if first==‘q’:
break
last=input("\nPlease give me your last.")
if last==‘q’:
break
go_asd=a_asd(first,last)
print("\n你確定名字:"+go_asd+"?")
Enter 'q’to quit at any time.
Please giveme your first:zhang
Please giveme your last:san
你確定名字:Zhang San?
Please give me your first:li
Please give me your last:si
你確定名字:Li Si?
Please give me your first:q //輸入q後程序在這裡終止
下面開始進行函式的測試
(1)可通過的測試
import unittest
from go_asd import a_asd
class AsdTest(unittest.TestCase): //建立一個類,用於包含測試函式。
def test_first_last_asd(self)
go_asd=a_asd('zhang','san')
self.assertEqual(go_name,'Zhang San') //在這裡對原有程式進行了賦值,以檢測程式執行過程是否正確
unittest.main()
Ran 1 test in 0.000s
OK//表示對一個程式用了極少的時間進行了測試,並且測試成功
(2)不能通過的測試
在原有程式的基礎上再新增一箇中間名
def a_asd(first,middle,last)
all_asd=first+’ ‘+middle+’ '+last
return all_name.title()
再使用以上的測試的程式進行測試…
import unittest
from go_asd import a_asd
class AsdTest(unittest.TestCase): //建立一個類,用於包含測試函式。
def test_first_last_asd(self)
go_asd=a_asd('zhang','san')
self.assertEqual(go_name,'Zhang San') //在這裡對原有程式進行了賦值,以檢測程式執行過程是否正確
unittest.main()
此時會出現錯誤的情況
E
ERROR:test_first_last_asd(main.AsdTest) //在這裡指出程式錯誤的地方
…
Ran 1 test in 0.000s
FAILED(errors=1) //在這裡指出程式測試失敗,並指出有一處錯誤。
(3)測試未通過時應該怎麼辦
改變需要測試的函式,可以在函式裡新增語句,防止錯誤。
def a_asd(first,middle,last)
if middle:
all_asd=first+’ ‘+middle+’ ‘+last
else:
all_asd=first+’ '+last
return all_asd.title() //這個語句表示出有middle和無middle兩種情況,防止程式執行混亂。
再執行以上的測試程式就會出現:
Ran 1 test in 0.000s
OK
此時測試程式就會顯示出函式沒有問題,成功執行。
(4)新增新測試
測試以上的所有函式
import unittest
from go_asd import a_asd
class AsdTest(unittest.TestCase): //建立一個類,用於包含測試函式。
deftest_first_last_asd(self)
go_asd=a_asd('zhang','san')
self.assertEqual(go_name,'Zhang San')
def test_first_middle_last_asd(self)
go_asd=a_asd('zhang','lao','san')
self.assertEqual(go_name,'Zhang Lao San')//在這裡表示對以上兩個程式進行測試,在一個程式裡分別運用了兩個測試語句,
unittest.main()
這時候再執行程式會出現:
Ran 2 test in 0.000s
OK//在這裡表示測試了兩個函式,並且這兩個函式均可行
到這裡,關於函式的測試就已經學習完了。
關於類的測試也已經學習完了,稍後會更新關於類的測試的學習過程