本文將介紹單元測驗的基礎版及使用unittest框架的單元測驗,
完成以下需求的代碼撰寫,并實作單元測驗
賬號正確,密碼正確,回傳{"msg":"賬號密碼正確,登錄成功"}
賬號和密碼任一為空,回傳{"msg":"所有引數不能為空"}
賬號/密碼錯誤,回傳{"msg":"賬號/密碼錯誤"}
基礎代碼實作:
- 定義方法,實作基本需求:
account_right = "python"
pwd_right = "python666"
def userLogin(account=None, pwd=None):
if not account or not pwd:
return {"msg":"所有引數不能為空"}
if account != account_right or pwd != pwd_right:
return {"msg":"賬號/密碼錯誤"}
if account == account_right and pwd == pwd_right:
return {"msg":"賬號密碼正確,登錄成功"}
return {"msg":"未知錯誤,請聯系管理員"}
對代碼進行驗證,是否符合需求:
- 驗證方法1:
print(userLogin("",""))
print(userLogin("python666","python"))
print(userLogin("","python666"))
print(userLogin("python",""))
print(userLogin("python","python666"))
驗證結果:

分析:直接呼叫userLogin方法,獲取各種引數對應的回傳結果
- 驗證方法2:
if __name__ == '__main__':
try:
assert userLogin("","") == {"msg":"所有參不能為空"}
assert userLogin("python666","python") == {'msg': '賬號/密碼錯誤'}
assert userLogin("","python666") == {'msg': '所有引數不能為空'}
assert userLogin("python","") =={'msg': '所有引數不能為空'}
assert userLogin("python","python666") == {'msg': '賬號密碼正確,登錄成功'}
except Exception as e:
print("啊哦,測驗失敗")
else:
print("恭喜!全部用例測驗通過")
驗證結果:

分析:通過assert判斷,寫入引數調取userLogin方法時得到的回應和預期的回應是否一致,如果一致就列印“全部通過”,如果有不一致的則會列印“測驗失敗”
此處使用到的try...except...else組合:不論如何一定會執行try下的代碼,如果有報錯則執行except下的代碼,如果沒有,則執行else下的代碼,
- 驗證方法3:使用unittest框架
另寫一個python檔案,則需匯入userLogin方法
import unittest
class MyTestCase(unittest.TestCase):
def test_empty(self):
expected = {"msg":"所有引數不能為空"}
actual = userLogin("","")
self.assertEqual(expected,actual)
def test_pwd_wrong(self):
expected = {"msg":"賬號/密碼錯誤"}
actual = userLogin("python","python6")
self.assertEqual(expected,actual)
def test_account_empty(self):
expected = {"msg":"賬號/密碼錯誤"}
actual = userLogin("python666","python")
self.assertEqual(expected,actual)
def test_login_ok(self):
expected = {"msg":"賬號密碼正確,登錄成功"}
actual = userLogin("python","python666")
self.assertEqual(expected,actual)
if __name__ == '__main__':
unittest.main()
驗證結果:

分析:unittest框架中自帶assert,實作的效果和方法1、2并無不同,只不過這樣更好管理用例,可視化測驗結果,以及產出測驗報告,
self.assertEqual(expected,actual)即是,判斷expected和actual的回傳值相等,
下一節:如何使用unittest框架產出可視化測驗報告
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/285657.html
標籤:其他
上一篇:介面測驗入門課 帶你進階介面測驗
下一篇:pytest---用例失敗重跑
